我有以下查询可以正常运行:
select * from myTable a where a.company is null and exists (select b.company from myTable b where b.id = a.id and b.office_id = a.office_id and b.company is not null);
现在,我还想在 myTable a 字段旁边的子查询中显示字段值 b.company 。
我该如何完成这项工作?
谢谢你,以及最好的问候
答案 0 :(得分:1)
如果您想要来自多个表的结果,您应该将表连接在一起。 由于您只需要存在于B中的A的记录,因此您需要使用外部JOIN返回A中的所有记录,并且仅返回在B中匹配的那些记录。但是,您希望从A中排除所有那些在B中找不到的记录。 / p>
SELECT *, b.company
FROM myTable a
LEFT JOIN myTable B
ON b.id = a.id
and b.office_id = a.office_id
and b.company_ID is not null
WHERE a.company is null
and B.ID is not null and B.office_ID is not null --this handles the exists part.