ich habe 2 probleme:
(1) mysql
(2) ich bekomme folgende query nicht hin … das problem ist dieses:
ich habe 3 tabellen tbl_movie, tbl_review und tbl_recommendation
tbl review und tbl_recommendation haben beide eine referenz auf tbl_movie:
nun möchte ich per delete alle datensätze aus tbl_movie löschen, für die weder eine referenz von tbl_review noch eine von tbl_recommendation existiert.
wie mache ich das am besten? geht im grunde auch aufgesplittet, da ich mit php als backend arbeite. das ganze in eine query zu pressen, wäre aber (1) eleganter, (2) schneller und (3) würd ichs endlich lernen …
vielen dank,
stefan
ps: in der mysql-doku hab ich dazu nichts gefunden … das ganze also so schön per löschweitergabe zu machen, spielts dank mysql sowieso nicht.
Wie sieht’s denn mit JOINs aus (Inner und Outer)? Gibt’s auch
keine Stored Procedures?
Die Lösung dürfte ein Left Join mit Bedingung Feld is null an der rechten Seite sein. Das Ganze eingeklammert und wiederholt, da es zwei abhängige Tabellen sind. Aber ich weiß nicht, ob MySQL so schlau ist, auf so einen Konstrukt eine Delete-Operation zuzulassen (habe meine Testinstallation vor einiger Zeit gelöscht).
Einen mehrfach verschachtelten JOIN würde ich eher nicht verwenden. Wer weiß, wie der wirklich ausgeführt wird (Execution Plan und Optimizing…). Wenn das „einfache“ Subquery-SQL nicht funktioniert dann würd ich’s mit einer SP probieren, wo ich mit einem Curser die Tabellen abgrase. Oder gibt’s vielleicht den Curser auch nicht?
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Wenn das „einfache“
Subquery-SQL nicht funktioniert dann würd ich’s mit einer SP
probieren, wo ich mit einem Curser die Tabellen abgrase. Oder
gibt’s vielleicht den Curser auch nicht?
Das MySQL so „schwach“ ist, hätte ich nicht gedacht. Ich würd’
mir ein anderes RDMS suchen.
Ich fand (finde) MySQL vom Ansabtz her sehr interessant - zum Arbeiten konnte ich mich aber noch nicht durchringen. Und es entwickelt sich schnell: vor kurzem kannte es keine Transaktionen, jetzt sind sie da.
Solange bleibe ich bei Oracle. Aber wer weiß, wie schnell das gehen wird…