Php 如何使用MySQL将三个表与条件相交?
我有三张桌子Php 如何使用MySQL将三个表与条件相交?,php,mysql,database,Php,Mysql,Database,我有三张桌子 1.usertb email funcarea 2.professiontb email experience 3.generalinfo email location 我想使用字段email将这三个表与3个条件结合起来,如娱乐区=2和体验=3和位置='Sydney' 因为我是SQL的初学者,所以我很想知道如何实现这一点。如果每个表中至少有一个条目: select a.email,funarea,experience,location from
1.usertb
email funcarea
2.professiontb
email experience
3.generalinfo
email location
我想使用字段email将这三个表与3个条件结合起来,如娱乐区=2和体验=3和位置='Sydney'
因为我是SQL的初学者,所以我很想知道如何实现这一点。如果每个表中至少有一个条目:
select a.email,funarea,experience,location from usertb a
left join professiontb b
on a.email = b.email
left join generalinfo c
on a.email = c.email
where
funarea = 2 and experience >=3 and location = 'Sydney'
(直言不讳、愚蠢,但它是有效的)
如果每个表中没有一个条目,我的建议是使用LEFT JOIN语句
SELECT * FROM usertb WHERE usertb.funcarea=2
LEFT JOIN professiontb ON(usertb.email=professiontb.email AND professiontb.experience>=3)
LEFT JOIN generalinfo ON(usertb.email=generalinfo.email AND generalinfo.location='Sydney');
按原样,您应该从usertb获取所有行,即使其他表中缺少一些行
SELECT * FROM usertb WHERE usertb.funcarea=2
LEFT JOIN professiontb ON(usertb.email=professiontb.email AND professiontb.experience>=3)
LEFT JOIN generalinfo ON(usertb.email=generalinfo.email AND generalinfo.location='Sydney');