如果在右侧
中不存在,我怎么能得到空值?我所拥有的是两个表格contract_type
ID | name
|
1 | full-time
2 | half-time
3 | volunteer
4 | freelancer
,第二个表是contract_type
和员工
之间的关系
表的名称是contract
ID | employee_id | contract_type_id
| |
1 | 31 | 1
2 | 31 | 2
3 | 31 | 4
4 | 45 | 3
现在我需要结果与contract_type
表相同,如果存在,则表示新列
我试过这个
select * from contract_type left join `contract` on contract_type.ID = contract.contract_type_id where employee_id = 31
现在的问题是结果只有三个记录,但我希望至少得到像
这样的东西ID | name | contract_type_id
| |
1 | full-time | 31
2 | half-time | 31
3 | volunteer | null
4 | freelancer | 31
或者
ID | name | status
| |
1 | full-time | true
2 | half-time | true
3 | volunteer | false
4 | freelancer | true
答案 0 :(得分:2)
将您的ID检查移至JOIN
条件,而不是WHERE
:
select *
from contract_type
left join `contract` on contract_type.ID = contract.contract_type_id
and employee_id = 31;