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');