我正在处理一个包含 SELECT DISTINCT 和子查询的长查询。它是部分工作,但不是放在一起。我收到一个错误:1241 - 操作数应包含 1 列,但我不明白为什么。任何帮助将不胜感激。
这是我的代码:
SELECT p.projId, pc.company, s.staffId, s.fName, s.lName
FROM projects AS p
INNER JOIN projCorp AS pc ON p.projId = pc.projId
INNER JOIN projStaff AS ps ON p.projId = ps.projId
INNER JOIN staff AS s ON ps.staffId = s.StaffId
WHERE p.projId = '9' AND s.company = pc.company
UNION
SELECT DISTINCT p.projId, pc.company, "NA", "NA", "NA"
FROM projects AS p
INNER JOIN projCorp AS pc ON p.projId = pc.projId
INNER JOIN projStaff AS ps ON p.projId = ps.projId
WHERE p.projId = '9' AND pc.company NOT IN (SELECT p.projId, pc.company, s.staffId, s.fName, s.lName
FROM projects AS p
INNER JOIN projCorp AS pc ON p.projId = pc.projId
INNER JOIN projStaff AS ps ON p.projId = ps.projId
INNER JOIN staff AS s ON ps.staffId = s.StaffId
WHERE p.projId = '9' AND s.company = pc.company);
如果没有 NOT IN 子查询,我会得到以下结果:
NOT IN 子查询的原因是为了摆脱没有关联员工的第三个重复条目。结果应该只有图片结果字段中的前两个条目。