2016-05-22 8 views
0

Ich habe 2 Tabellen:SQL-Abfrage returnig keine Nullwerte

  1. req_docs

req_docs

und pers_docs

enter image description here

Meine SQL-Abfrage:

SELECT * 
FROM req_docs 
LEFT OUTER JOIN pers_docs ON req_docs.doc_nid = pers_docs.doc_nid 
WHERE req_docs.pos_id ="CPT" 
    AND pers_docs.pers_nid = 6 
    AND pers_docs.expires <= "2009-09-01"` 

Es gibt nur 2 Zeilen zurück. Was ist in Ordnung, aber ich muss auch nicht vorhandene Übereinstimmungen von pers_docs Join als NULL-Werte zurückgeben. Hilfe bitte!

Antwort

1

Wenn LEFT JOIN, setzen Sie die Bedingungen der rechten Seitentabelle in die ON-Klausel, um echtes linkes Join-Verhalten zu erhalten! (Wenn in WHERE, erhalten Sie regelmäßig INNER JOIN Ergebnis.)

SELECT * 
FROM req_docs 
LEFT OUTER JOIN pers_docs ON req_docs.doc_nid = pers_docs.doc_nid 
          AND pers_docs.pers_nid = 6 
          AND pers_docs.expires <= "2009-09-01" 
WHERE req_docs.pos_id = "CPT"