2012-11-14 54 views
2

我不確定我在想什麼,但我知道它不應該這麼難。我有兩張桌子。第一張表格列出了一個網站的所有可能的工作。第二個表格是在一個網站完成一項工作的時候。我想要一個查詢,通過獲取所有可能的作業並加入秒錶中的數據,如果有的話。尚未完成作業的網站將具有NULL值。MYSQL從兩個表中加入

實施例:

表1:
ID
名稱
decsription

表2:
ID
SITEID
狀態
JOBID

SELECT table1.* , table2.* 
FROM table1 
LEFT JOIN table2 
ON table1.id = table2.jobID 
WHERE siteID = 12 

已經完成,並非所有的工作完成和未完成的這隻返回工作崗位。

在此先感謝您的幫助。

回答

1

如果你想要這個特定的站點或者null,你應該在那裏聲明where語句(當第二個表中的行是emty時它不符合條件siteID = 12)或者改變它(添加「OR siteID is NULL」)

0

一個簡單的改變應該做的,只是改變了值的順序對JOIN,就像這樣:

SELECT table1.* , table2.* 
FROM table1 
LEFT JOIN table2 
ON table2.jobID = table1.id 
WHERE siteID = 12 OR siteID IS NULL 

並牢記的siteID將NULL時,有沒有結果,那麼改變你的WHERE以及。

+0

我一直放在siteID = null not siteID爲null。有什麼不同? – user1825157

+0

根據[MySQL的文檔](http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html):「您不能使用算術比較運算符,如=,<, or <>來測試NULL。因爲與NULL進行算術比較的結果也是NULL,所以你不能從這種比較中獲得任何有意義的結果。「 – DarkAjax