我需要从3个表中获取数据。但是,只要有2个表,我才能得到正确的结果。一旦我加入第3个表,我就会得到null结果。有效的查询是:
select a.first_name,a.last_name,a.email, a.birthdate,b.mobile_phone
from REGISTRATION a
left join TRIPS b on a.trip_id=b.trip_id
where a.trip_id=9 and registration_status='Active'
但是,只要我使用以下查询从第3个表中获取数据,我就会得到null结果:
select a.first_name,a.last_name,a.email, a.birthdate,b.mobile_phone,d.country_name
from REGISTRATION a
left join TRIPS b
on a.trip_id=b.trip_id and registration_status='Active'
left join DESTINATION_COUNTRY d
on b.destination_country_id=d.destination_country_id
where a.trip_id=9
请告诉我我做错了什么。
非常感谢。
答案 0 :(得分:1)
你应该从加入“和registration_status ='Active'”中删除它并将其移动到where子句:
select a.first_name,a.last_name,a.email, a.birthdate,b.mobile_phone,d.country_name
from REGISTRATION a
left join TRIPS b
on a.trip_id=b.trip_id
left join DESTINATION_COUNTRY d
on b.destination_country_id=d.destination_country_id
where a.trip_id=9 and registration_status='Active'