SQL:如何查找连接表中没有条目的位置

时间:2012-10-15 09:48:53

标签: php mysql

我想知道如何设置我的查询以使公司没有工作。

company
- id

jobs
- id
- company_id

所以我想要公司没有任何工作的行结果。

EDIT 抱歉,我在自己的问题中误以为自己..还需要在tabel公司的tabel工作中加入INNER JOIN(jobs.company_id = company.id)

所以: 我想要一个结果来自公司的行没有任何工作或有非工作的工作(active = 0)。

5 个答案:

答案 0 :(得分:2)

试试这个:

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

答案 1 :(得分:0)

SELECT c.* FROM companies c 
LEFT JOIN jobs j ON c.id=j.company_id 
HAVING company_id IS NULL

答案 2 :(得分:0)

SELECT company.id , jobs.id
FROM company
    LEFT JOIN jobs ON jobs.company_id = company.id
WHERE jobs.ID IS NULL

答案 3 :(得分:0)

你需要一个外部联接。

试试这个

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

答案 4 :(得分:0)

尝试下面的查询:

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