我有一个简单的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”。
答案 0 :(得分:1)
我怀疑您只是想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
更合适。