Как пересечь три таблицы с условием, используя MySQL? - PullRequest
0 голосов
/ 17 февраля 2011

У меня было 3 таблицы

1.usertb

email     funcarea

2.professiontb

email     experience

3.generalinfo

email     location

Я хочу объединить эти три таблицы, используя поле email с 3 условиями, такими как funarea = 2 и опыт > = 3 и местоположение = 'Сидней'

Поскольку я новичок в SQL, мне не терпится узнать, как это реализовать.

Ответы [ 2 ]

1 голос
/ 17 февраля 2011

Если у вас есть хотя бы одна запись в каждой таблице:

(тупо и глупо, но это работает)

SELECT * 
FROM usertb, professiontb, generalinfo 
WHERE usertb.email=professiontb.email AND professiontb.email=generalinfo.email AND usertb.funcarea=2 AND professiontb.experience>=3 AND generalinfo.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, даже если в других таблицах есть некоторые отсутствующие.

1 голос
/ 17 февраля 2011
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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...