Delete Statement


[ ruban.de ] [ Antworten ] [ Forum ]

Geschrieben von MATT on November 27, 2003 um 13:30:

Hallo,

ich habe ein Problem mit einem SQL Statement, das unter mysql funktioniert, aber nicht unter DB2.

Es geht um folgendes:
Ich habe eine Tabelle documents und eine Tabelle attributes. Wenn ich ein Dokument in documents speichere, dann werden Attribute dazu in der attributes-Tabelle gespeichert. Beide Tabellen sind über eine Spalte docid verbunden, die in beiden Tabellen existiert.
Jetzt mein Problem:
Falls ein Dokument aus der Documents-Tabelle gelöscht wurde, möchte ich danach alle Attributes löschen, zu denen es keinen Eintrag in der Documents-Tabelle gibt.

Unter mySQL funktioniert folgendes:
DELETE db.attrcountry
FROM db.attrcountry t2
LEFT JOIN db.documents t1
ON t2.docid=t1.docid
WHERE t1.docid IS NULL


Unter DB2 würde das funktionieren:
(Allerdings gibt es unter mySql keine SubSelects)
DELETE FROM DOCPILOT.ATTRCOUNTRY WHERE
EXISTS(
select t2.docid from docpilot.attrcountry as t2
left join docpilot.documents as t1
on t2.docid = t1.docid
WHERE t1.docid IS NULL)


Gibt es ein Statement, das für beide Datenbanken funktioniert?

Kann mir da jemand helfen?

Gruß MATT


Antworten:


Schreibe eine Antwort

Name:   
E-Mail:  

Thema:

Kommentar:

Optionale Link URL:   
Link Titel:                  
Optionale Image URL:


[ Antworten ] [ Forum ]