【发布时间】:2015-08-15 14:02:42
【问题描述】:
我有 3 个表,名称、主管和经理。我需要一个显示姓名列表的查询,以及他们是主管、经理还是两者兼而有之。
我当前的查询完成了 90% 的问题,返回所有主管,并检查他们是否也是经理。但是,如果用户不是“主管”而是“经理”,则他不会在查询中列出。
SELECT name.id,
name.email,
IF(sup.code = 1, 'Yes', 'No') as Supervisor,
IF(man.userId IS NOT NULL, 'Yes', 'No') as Manager
FROM employee name
LEFT JOIN supervisor sup ON name.id = sup.id
LEFT JOIN manager man ON name.id = man.id
WHERE sup.code = 1
谢谢
【问题讨论】:
-
您将加入表
supervisor,因此推测如果某人不是主管,他们在supervisor中没有记录。在那种情况下,sup.code不会是 1 -
您是否尝试过将
WHERE子句排除在外?