DELETE mit Unterabfrage

Hey,
ich habe folgendes Problem (ich vereinfache mal ein wenig):

Tabelle 1:
t1.id, …

Tabelle 2:
t2.id,
t2.fk_t1_id

Tabelle 3:
t3.id,
t3.fk_t2_id

Ich möchte aus Tabelle 3 folgende Zeilen löschen:

select * from t3, t2, t1 where t3.fk_t2_id = t2.id and t1.id = t2.fk_t1_id

Allerdings habe ich es nicht hinbekommen, diese select-Abfrage mit der delete-Anweisung zusammen zu bringen.
Hat jemand nen Tipp für mich? Ich wäre euch total dankbar :slight_smile:
lg Nadine



test=# select * from t1;
 id
----
  1
(1 row)

test=# select * from t2;
 id | id_t1
----+-------
  2 |     1
(1 row)

test=# select * from t3;
 id | id_t2
----+-------
  3 |     2
(1 row)

test=# delete from t3 using t1, t2 where t3.id_t2=t2.id and t2.id_t1=t1.id;
DELETE 1
test=# select * from t3;
 id | id_t2
----+-------
(0 rows)

test=#

Tipp für die Zukunft: psql hat z.B. eine Online-Hilfe, die auch Syntaxregeln beinhaltet.

Andreas

Aaaah, vielen Dank!
Werds morgen früh gleich testen.
In die Hilfe hatte ich geguckt, bin nur nicht fündig geworden, das using kenne ich noch gar nicht.
Tausend Dank :slight_smile:
lg Nadine

Schon okay, wenn man nicht weiß, wonach man suchen muß, findet man das relativ schlecht :wink:

Tausend Dank > :slight_smile:
lg Nadine

Bitte.