Ich habe eine Tabelle A, die über eine Join-Tabelle J mit einer anderen Tabelle B verbunden ist. Wie kann ich auf alle Zeilen von Tabelle A zugreifen, die keine Entsprechung haben "join" Eintrag in J basierend auf einem gegebenen Attribut aus Tabelle B? Zum Beispiel:Suchen von Zeilen, die keinen entsprechenden Eintrag in der Join-Tabelle haben
Table A:
-------
id
Table J:
-------
A_id
B_id
Table B:
-------
id
name
Sagen Sie, dass für eine gegebene B.name = „Suzie“, wie können wir bestimmen, alle Zeilen A, die in dem B.name = „Suzie“ keinen Eintrag in J mit B_id haben? Ich denke, das sollte eine einfache Abfrage sein, und ich überlegte, GROUP BY
zu verwenden, weil es scheint, dass Sie für jeden Eintrag in A bestimmen möchten, ob die B_id, mit der Sie arbeiten (in diesem Fall B.name = "Suzie")) existiert in J für jede "Gruppe" von A_id's. Irgendwie kann ich mich nicht darum kümmern; würde einen Schub in die richtige Richtung schätzen.
Ich denke, es ist besser, 'SELECT 1' zu schreiben, wenn Sie' EXISTS() 'verwenden, da es klarer ist, dass die Spalten aus der inneren Auswahl nirgendwo benötigt werden. – sagi
Richtig, das beseitigt einige Unklarheiten mit EXISTS-Anweisungen. – Siyual