LEFT-OUTER-JOIN-Abfrage nicht zurückgegeben erwarteten Zeilen
Mein Ziel ist es, genau das zu tun, was ein LEFT OUTER JOIN zu tun beabsichtigt, mit dem 4. venn-Diagramm: SQL-Diagramme:
Meine Abfrage nicht zurücksenden, Werte überhaupt, wo in der Tat, es sollten wieder alle innerhalb des Consultant_Memberships minus die eine, die innerhalb gespeichert Consultant_Memberships_Lists.
Finden Sie die SQL Fiddle zum einfacheren Verständnis:
SELECT *
FROM consultant_memberships
LEFT OUTER JOIN consultant_memberships_list
ON consultant_memberships.`id` =
consultant_memberships_list.membership_id
WHERE consultant_memberships_list.consultant_id = $id
AND consultant_memberships_list.membership_id IS NULL
Wird die Abfrage mit '5' als eine ID zu Demonstrationszwecken, um zu versuchen, und suchen Sie sich die richtigen Zeilen.
- Zurzeit deine Frage hat fast keine Informationen, nur links zu Informationen an anderer Stelle. Diese links sind in Ordnung, aber deine Frage sollte auch die notwendigen Informationen enthält.
- (Auch, Ihre Phrasierung -- "in der Tat, [meine Abfrage] sollte [...]" -- macht es klingen wie Sie denken, Sie haben geschrieben die Abfrage korrekt, und das DBMS ist einfach, läuft es falsch. Ich versichere Ihnen, das ist nicht der Fall.)
- (Ich Stimme mit ruakh. Ich änderte "richtig" zu "erwartete" im Titel, und Förderung der Verwendung von neutralen/nicht-anklagenden Sprache.)
- Ich entschuldige mich, ich habe weitere Informationen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihnen aktuelle Abfrage ist im Grunde tun eine
INNER JOIN
wegen derconsultant_id = 5
auf dieWHERE
- Klausel. Ich glaube, dass Sie wirklich wollen, zu verwenden:Sehen SQL Fiddle mit Demo
Verwenden
Der Where-Klausel verwendet werden, bevor Sie in Ihrer Abfrage "consultant_memberships_list.consultant_id = 5 " war die Vernachlässigung der left-outer-join.