[英]Using a third table in simple left outer join
我有一个简单的sql很好,但我需要来自另一个表的数据并在下面出现错误:诀窍是每个people_id可能有多个program_name(我们是一家代理很多程序),我想显示全名,即alt_id信息和它们所在的程序。即使它们没有alt_id,我也要显示它们。
select b.*, c.program_name, a.full_name
from all_clients_view a
left outer join alt_id_view b
on a.people_id = b.people_id
***直到这里都很好。 这部分给出了错误:
Where a.people_id IN (select program_name
from program_enrollment_view c
where a.people_id = c.people_id)
错误:
无法绑定多部分标识符“ c.program_name”。
我怀疑您只是想exists
:
where exists (select 1
from program_enrollment_view pev
where a.people_id = pev.people_id
)
比较“ people_id”和“ program_name”对我来说没有意义。
如果要返回程序名称,则需要附加join
:
select ac.full_name, ai.*, pev.program_name,
from all_clients_view ac left join
alt_id_view ai
on ac.people_id = ai.people_id left join
program_enrollment_view pev
on ac.people_id = pev.people_id;
笔记:
a
, b
和c
。 强烈推荐! left join
视图program_enrollment_view
。 *
,所以我猜想inner join
更合适。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.