MySQL左边连接3个表没有产生结果

时间:2015-12-08 17:06:59

标签: mysql

我需要从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

请告诉我我做错了什么。

非常感谢。

1 个答案:

答案 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'