update + select
nina
- datenbank
hi,
hab tab1.feld1 und tab2.tab1_feld1, welche für entsprechende einträge gleich sind.
in tab1 ist ein feld für tab2.tab2_feldx vorgesehen.
gerne würde ich per UPDATE... feldx einbringen.
hab schon das versucht, aber es geht nicht:
UPDATE tab1 SET tab1.feld1=tab2.tab1_feld1
dann hab ich noch das versucht:
UPDATE tab1 SET tab1.tab2_feldx=SELECT tab2_feldx FROM tab2 WHERE tab1.feld1 IN (tab2.tab1_feld1)
komm einfach nicht drauf, wie das geht. wie gesagt, die 2 zusammengehörigen datensätze lassen sich daran erkennen, dass sich die IDs(tab1.feld1 und tab2.tab1_feld1) entsprechen...
thanks
Hallo Nina,
hab tab1.feld1 und tab2.tab1_feld1, welche für entsprechende einträge gleich sind.
sich vermute daher, dass in Tabelle tab1 die Spalte feld1 Träger des Primärschlüssels ist und in Tabelle tab2 Fremdschlüssel ist. Wenn Dir diese Begriffe nichts sagen, frage bitte nach.
in tab1 ist ein feld für tab2.tab2_feldx vorgesehen.
Warum? Das sieht definitiv nach einem fehlerhaften Tabellendesign aus. Es gibt im wesentlichen folgende Möglichkeiten:
a) Jedem Datensatz aus Tabelle tab1 können ein oder kein Datensatz in Tabelle
tab2 zugeordnet sein, jedem Datensatz aus Tabelle tab2 ist genau ein
Datensatz aus Tabelle tab1 zugeordnet. 1:1-Beziehung zwischen tab1 und tab2
b) Jedem Datensatz aus Tabelle tab1 können kein, ein oder mehrere Datensätze
in Tabelle tab2 zugeordnet sein, jedem Datensatz aus Tabelle tab2 ist
genau ein Datensatz aus Tabelle tab1 zugeordnet. 1:n-Beziehung zwischen
tab1 und tab2
c) Jedem Datensatz aus Tabelle tab2 können ein oder kein Datensatz in Tabelle
tab1 zugeordnet sein, jedem Datensatz aus Tabelle tab1 ist genau ein
Datensatz aus Tabelle tab2 zugeordnet. 1:1-Beziehung zwischen tab2 und tab1
d) Jedem Datensatz aus Tabelle tab2 können kein, ein oder mehrere Datensätze
in Tabelle tab1 zugeordnet sein, jedem Datensatz aus Tabelle tab1 ist
genau ein Datensatz aus Tabelle tab2 zugeordnet. 1:n-Beziehung zwischen
tab2 und tab1
e) Jedem Datensatz aus Tabelle tab1 können mehrere Datensätze aus Tabelle
tab2 zugeordnet sein. Jedem Datensatz aus Tabelle tab2 können mehrere
Datensätze aus Tabelle tab1 zugeordnet sein. n:m-Beziehung zwischen
Tabelle tab1 und tab2.
Umsetzung in der Datenbank
a) und b) Primärschlüssel aus tab1 ist Fremdschlüssel in tab2
c) und d) Primärschlüssel aus tab2 ist Fremdschlüssel in tab1
e) Verwende eine Zuordnungstabelle, in der die Primärschlüssel aus
tab1 und tab2 als Fremdschlüssel auftreten.
Im Normalfall ist es nie erforderlich, dass eine solche Doppelabhängigkeit vorliegt, wie Du sie erzeugen möchtest. Könntest Du bitte anhand Deiner tatsächlich vorliegenden Tabellen erläutern, was Du erreichen möchtest. Dann kann man Dir wesentlich besser helfen. Bitte gib' auch noch das von Dir verwendete Datenbankmanagementsystem (DBMS) an, z.B. MySQL, PostgreSQL, MS SQL Server, Oracle, DB2, SQLite, MS Access, Firebird, ... Die unterschiedlichen DBMS weisen unterschiedliche Fähigkeiten auf, insbesondere bei MySQL unterscheidet sich die Funktionalität enorm zwischen verschiedenen Versionen, so dass es grundsätzlich eine gute Idee ist, die verwendete Version mit anzugeben.
Freundliche Grüße
Vinzenz