SQL Delete aller Zeilen einer Seiten eines Joins

WinKill

Lt. Junior Grade
Dabei seit
Mai 2007
Beiträge
295
Hallo,

ich stehe gerade am Schlauch.

Ich habe dieses SQL Statement.

Select *
FROM table1 as t1 inner join table2 as t2 on t1.A = t2.a AND t1.B = t2.B And t1.C = T2.B
WHERE t1.Z = 0 and t2.Z = null

Und möchte jetzt von dem Ergebnis alle Zeilen aus T2 löschen.

Eindeutig identifizeiren kann man eine Zeile über die Spalten A, B, C und Z (einzelne Spalten genügen nicht).

Wie bekomme ich einen Delete auf genau die gewünschten Zeilen?

Ich habs mit subselects versucht aber mich verrannt. Wie bekomme ich den zusammengesetzten Primärschlüssel hier in ein delete?

Viele Grüße
Winni
 

Teiby

Lt. Commander
Dabei seit
Sep. 2008
Beiträge
1.610
Code:
DELETE * FROM table2 AS t2
INNER JOIN table1 AS t1 ON t1.A = t2.a AND t1.B = t2.B AND t1.C = T2.B
WHERE t1.Z = 0 AND t2.Z = null
einfach DELETE statt SELECT und table2 anstatt table1
 

WinKill

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Mai 2007
Beiträge
295
Hallo,

es war nicht ganz korrekt aber hat mich auf die richtige Spur gebracht. Eine kleine Änderung war noch nötig, man muss angeben welche Tabelle betroffen sein soll:

Code:
DELETE t2 FROM table2 AS t2
INNER JOIN table1 AS t1 ON t1.A = t2.a AND t1.B = t2.B AND t1.C = T2.B
WHERE t1.Z = 0 AND t2.Z = null
Vielen Dank!

Viele Grüße
Winni
 
Top