Hallo,
bin ein SQL Anfänger und bräuchte eine Abfrage weiß aber gar
nicht wie das geht, wäre um jede Hilfe dankbar. Also zu meiner
Abfrage:
Es gibt 2 Server (server1, server2).
das geht mit
http://dev.mysql.com/doc/refman/5.0/en/federated-use…
dabei beachten
http://dev.mysql.com/doc/refman/5.0/en/federated-lim…
Bei server1 gibt’s eine Tabelle (tab1) und auf server2 zwei
Tabellen (tab2, erg ist leer). In den jeweiligen
Tabellen(tab1, tab2) gibt es folgende Spalten AnlagenNr, Ort
und PLZ.
Ich möchte beide Tabellen vergleichen, erst wenn die AnlagenNr
gleich ist, sollen auch Ort und PLZ, die in der gleichen Zeile
wie die AnlagenNr liegen, verglichen werden. Erst wenn alle
drei gleich sind, soll in die (erg) Tabelle die AnlagenNr
eingetragen werden.
INSERT INTO erg (AnlagenNr
,Ort
,PLZ
)
SELECT AnlagenNr,Ort,PLZ FROM tabl1
JOIN tabl2
ON tabl1.AnlagenN = tabl2.AnlagenN
WHERE tabl1.Ort = tabl2.Ort
AND tabl1.PLZ = tabl2.PLZ
oder ohne JOIN
INSERT INTO erg (AnlagenNr
,Ort
,PLZ
)
SELECT tabl2.AnlagenNr,tabl2.Ort,tabl2.PLZ
FROM tabl1, tabl2
WHERE tabl1.AnlagenN = tabl2.AnlagenN
AND tabl1.Ort = tabl2.Ort
AND tabl1.PLZ = tabl2.PLZ
jenachdem wie deine keys so liegen und ob es doppelte gibt, braucht es dann vielleicht IGNORE oder DUPLICATE UPDATE etc …
etwas schwammig die darstellung der tabellen , ohne key etc