SQL: Insert into Tabelle, wenn ein Wert nicht vorhanden ist in einer anderen Tabelle?
Ich habe zwei Tabellen, haben Sie eine gleiche Spalte id
, aber table1
hat mehr id
s als table2
. Nun möchte ich diese zu finden id
eine in table1
aber nicht in table2
, und insert
Sie in table2
, und setzen Sie deren Wert der Zählung als 0.
Habe ich versucht den folgenden code, aber es sagt syntax error, unexpected IF
. Könnte mir jemand helfen es herauszufinden? Vielen Dank.
if not exists(select * from table1 where table1.id = table2.id)
begin
insert into table2 (id, count) values (table1.id, 0)
end
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies mit einem einzigen
insert . . . select
Aussage:Ich vermute, dass Sie MySQL verwenden, wenn Sie immer einen Fehler auf
if
(if
ist nur erlaubt in der Prozedur/Funktion/trigger-code). Aber selbst wennif
wo erlaubt, die Abfrage inexists
Referenzentable2.id
und es gibt keinetable2
imfrom
- Klausel. So das wäre der nächste Fehler.Versuchen Sie dies:
LEFT JOIN auch hier könnte man