2012-10-15 26 views
-2

我想知道如何設置我的查詢來讓公司沒有工作。SQL:如何找到加入表中沒有條目的地方

company 
- id 

jobs 
- id 
- company_id 

所以我想從公司的行沒有任何工作的結果。

編輯 對不起,我mistaked我在我的問題。它也需要有內從TABEL公司(jobs.company_id = company.id)

所以TABEL工作JOIN: 我想要的結果OS來自公司的行沒有任何工作或者有非工作崗位(活動= 0)。

+0

'選擇T *從公司裏t.id沒有(從就業選擇COMPANY_ID)'。但我強烈建議你閱讀[這篇文章](http://whathaveyoutried.com) – Leri

回答

2

試試這個:

select id 
from company 
where id not in(select company_id from jobs where active != 0) 
+0

對不起,我誤以爲我自己的問題..它還需要從Tabel公司的tabel工作INNER JOIN(jobs.company_id = company .id)所以: 我想要公司的行沒有任何工作或工作非actief(活躍= 0)的結果。 – Kenny

+0

如何檢查那項工作是否有效,是否爲列 –

+0

是的。 jobs.active = 0。 所以我想從沒有任何工作活躍,並沒有任何工作的公司的結果。對不起,我的解釋,本週的第一天.. – Kenny

0
SELECT c.* FROM companies c 
LEFT JOIN jobs j ON c.id=j.company_id 
HAVING company_id IS NULL 
0
SELECT company.id , jobs.id 
FROM company 
    LEFT JOIN jobs ON jobs.company_id = company.id 
WHERE jobs.ID IS NULL 
0

你需要你的外連接。

試試這個

select count(c.id) 
from company c 
left join jobs j on j.companyid = c.id 
where j.id is null 
+0

你能告訴我什麼是錯誤的[我的答案](http://stackoverflow.com/a/12893137/722783)和你的答案和我的區別是什麼?因爲沒有人想告訴我爲什麼他們低估了它。謝謝。 –

0

嘗試查詢如下:

SELECT * FROM company AS c WHERE c.id NOT IN (SELECT company_id FROM jobs)