#mysql #sql #join
#mysql #sql #Присоединиться
Вопрос:
Допустим, у меня есть 3 таблицы :
info_contact :
id_contact id_demand email
1 1 contact1@a.com
2 2 contact2@a.com
3 3 contact3@a.com
требовать :
id_demand date
1 2016-10-12
2 2016-11-05
3 2016-12-12
приглашение :
id_invitation id_demand partner_company concurrent_company
1 1 google facebook
2 1 null linkedin
3 2 google null
4 2 null yahoo
5 3 google null
Я хотел бы получить такой результат :
Company | id_demand
----------------------
Facebook | 1
Google | 1
Google | 2
Google | 3
Linkedin | 1
Yahoo | 2
без разницы между partner_company и concurrent_company (вместе в результате).
На данный момент я пытался :
SELECT i.partner_company, d.id_demand
FROM info_contact as c, demand as d, invitation as i
WHERE c.id_demand = d.id_demand AND d.id_demand = i.id_demand
AND i.partner_company IS NOT NULL
GROUP BY i.partner_company, d.id_demand;
и
SELECT i.concurrent_company, d.id_demand
FROM info_contact as c, demand as d, invitation as i
WHERE c.id_demand = d.id_demand AND d.id_demand = i.id_demand
AND i.concurrent_company IS NOT NULL
GROUP BY i.concurrent_company, d.id_demand;
и я не знаю, как объединить эти 2 запроса и получить результат, который я хочу
Ответ №1:
Попробуйте использовать UNION ALL
select partner_company , id_demand
From invitation
Where partner_company is not null
Union All
select concurrent_company , id_demand
From invitation
Where concurrent_company is not null
Также я не JOIN
просматривал другие таблицы, так как вы их не выбираете. Если вы хотите проверить существование, то JOIN
это. Используйте INNER JOIN
синтаксис для объединения в таблицу