MySQL запрос, чтобы узнать, сколько раз каждый пользователь появляется в нескольких таблицах - PullRequest
0 голосов
/ 26 октября 2018

Я переделываю свой вопрос для большей ясности.У меня есть несколько (а точнее 5) таблиц, где пользователь может появиться только один раз.Я хочу перечислить, сколько раз каждый пользователь появляется.

ПРИМЕР:

**employess table** 
email | cn | more columns.. user@gr.com | name | etc

**intranet table** 
email | data1 | more columns.. user@gr.com | something | etc
user1@gr.com | something | etc
user2@gr.com | something | etc

**sap table** 
email | data1 | more columns.. 
user@gr.com | something | etc
user1@gr.com | something | etc
user2@gr.com | something | etc

**solman table** 
email | data1 | more columns.. 
user@gr.com | something | etc
user1@gr.com | something | etc
user2@gr.com | something | etc

**orfeo table** 
email | data1 | more columns.. 
user@gr.com | something | etc
user3@gr.com | something | etc

**saul table** 
email | data1 | more columns.. 
user@gr.com | something | etc
user3@gr.com | something | etc

**EXPECTED RESULT**

   email      | Name        | Total
user@gr.com   | name user   | 5  (this is the only user in all the 5 tables)   
user1@gr.com  | name user1  | 3
user2@gr.com  | name user2  | 3  
user3@gr.com  | name user2  | 2

Я попробовал левое соединение, но мне возвращается только одна запись .... Не список ... Что я делаю не так?

1 Ответ

0 голосов
/ 26 октября 2018

Этот тип запроса должен быть выполнен с UNION ALL:

SELECT b.email, b.name, count(*)
from 
(
SELECT email from table1
UNION ALL
SELECT email from table2
UNION ALL
SELECT email from table3
UNION ALL
SELECT email from table4
UNION ALL
SELECT email from table5
) as a inner join employess b on a.email = b.email
GROUP BY b.email, b.name
...