我有两张桌子。
**Employee**
EmpId NOT NULL (PK)
Name NOT NULL
OrgID NULL (FK)
**Organisation**
OrgID NOT NULL (PK)
OrgName NOT NULL
我想用一个select语句获取Name,OrgName。 但条件是员工表中的OrgID可以为null。如此多的记录没有OrgID,也记录了OrgID。
如何通过一个sql语句传递EmpId来获取所有数据?
感谢。
答案 0 :(得分:3)
使用LEFT JOIN
:
select e.name, o.OrgName
from Employee e
left join Organisation o on o.OrgID = e.OrgID
where e.EmpId = ?;
如果FK为空, OrgName将在结果行中为null
。
答案 1 :(得分:1)
使用LEFT JOIN
即
SELECT
e.Name,
O.OrgName
FROM Employee e
LEFT JOIN Organisation O ON(O.OrgID = e.OrgID)
WHERE EmpId = x
答案 2 :(得分:0)
这应该可以正常工作:
SELECT
e.Name
, o.OrgName
FROM Employee AS e
LEFT JOIN Organisation AS o ON e.OrgID=o.OrgID
WHERE e.EmpId = ?;
答案 3 :(得分:0)
SELECT * FROM Employee
LEFT JOIN Organisation ON
Employee.OrgID == Organisation.OrgID
WHERE
EmpId = ?;
This link will give you more details
编辑:忘记包含WHERE子句