2016-05-22 81 views
0

我有2個表:SQL查詢不returnig空值

  1. req_docs

req_docs

和pers_docs

enter image description here

我的SQL查詢:

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"` 

它只返回2行。這是可以的,但我還需要返回不存在的來自pers_docs連接的匹配作爲NULL值。請幫助!

回答

1

LEFT JOIN,在ON子句中放置右側表的條件以獲得真正的左連接行爲! (當在WHERE,你得到正常的INNER JOIN結果。)

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"