Ich habe 3 Tabellen in meinem lokalen Postgres-Datenbank:Postgres Update mit einem inneren Join über 2 Tabellen?
[myschema].[animals]
--------------------
animal_id
animal_attrib_type_id (foreign key to [myschema].[animal_attrib_types])
animal_attrib_value_id (foreign key to [myschema].[animal_attrib_values])
[myschema].[animal_attrib_types]
--------------------------------
animal_attrib_type_id
animal_attrib_type_name
[myschema].[animal_attrib_values]
--------------------------------
animal_attrib_value_id
animal_attrib_value_name
Zur Laufzeit werde ich die animal_id
kennen. Ich brauche SQL ausführen, um die animal_attribute_value_name
diesem Element zugeordnet zu aktualisieren, so etwas wie:
UPDATE
animal_attribute_values aav
SET
aav.animal_attribute_value_name = 'Some new value'
WHERE
# Somehow join from the provided animal_id???
ich haben eine Art von verschachtelten SELECT
oder INNER JOIN
innerhalb der WHERE
Klausel zu tun, aber nicht sicher, wie dies zu tun. Danke im Voraus!
bearbeiten:
Sagen wir, ich habe eine animal
Datensatz mit den folgenden Werten:
[myschema].[animals]
--------------------
animal_id = 458
animal_attrib_type_id = 38
animal_attrib_value_id = 23
und die entsprechenden animal_attrib_value
(mit id = 23) hat die folgenden Werte:
[myschema].[animal_attrib_values]
--------------------------------
animal_attrib_value_id = 23
animal_attrib_value_name = 'I am some value that needs to be changed.'
Zur Laufzeit habe ich nur die animal_id
(458). Ich muss die entsprechende animal_attrib_value
(23) nachschlagen und ihre animal_attrib_value_name
zu 'Some new value'
, alle innerhalb einer einzigen UPDATE-Anweisung ändern.
Was ist die Bedeutung der [] um die Kennungen? – wildplasser
nichts, nur für visuelle Attraktivität; hilft mir, "Segmente" (Schemas, Tabellen, Felder) viel einfacher zu sehen; Ich glaube, ich habe es von meinen MS SQL-Tagen geliehen – IAmYourFaja
Ihre Absicht ist nicht klar. Möchten Sie ein "Tier" aktualisieren, indem Sie eines seiner Attribute ändern (auf einen neuen Wert zeigen)? Außerdem: tatsächliche Tabellendefinitionen würden helfen. – wildplasser