我有2张桌子 第一张桌子。员工(empid-主键,empname) 例如:员工表
1 john
2 martyn
3 davis
第二个表格文件(empid,documentname) 例如:
1 address.doc
1 worksheet.doc
1 salaryslip.doc
3 address.doc
每个员工在员工表中只有一个条目 但是在文档表中,为每个员工插入零个或多个条目。
我想编写一个查询,提供如下所示的输出
empid empname documentflag
1 john true
2 martyn null
3 davis true
即,如果文档表至少有一个员工条目,则设置相应的文档标志为true。否则将文档值设置为null。 是否有任何使用连接的有效方法。 提前致谢
答案 0 :(得分:2)
您可以使用LEFT JOIN
执行此操作以包含文档表,GROUP BY
以便每行只获得1名员工,并使用IF()
构造来输出您想要的值for documentflag。
SELECT e.empid, e.empname, IF(d.empid IS NULL, NULL, TRUE) `documentflag`
FROM employee e
LEFT JOIN documents d ON (d.empid = e.empid)
GROUP BY e.empid
答案 1 :(得分:0)
SELECT
empid,
empname,
documentFlag
FROM employee emp
LEFT OUTER JOIN
(SELECT doc.empid, count(doc.empid)as documentFlag
FROM documents doc Group by empid) X
ON emp.empid = X.empid