所以我有这些表:
表 1:
facilities emails
Fac 1 fac1@email.com
Fac 2 fac2@email.com
Fac 1 RE fac1@email.com
表 2:
facilities emails
fac1 fac1@email.com
fac2 fac3@email.com
现在,在这两个表上,我试图找出有多少设施正在使用每个地址电子邮件。我有两个 sql 查询可以做到这一点:
SELECT ce.email, count(*)
AS TOTAL_FACILITIES
FROM table1
AS ce
GROUP BY ce.email
ORDER BY TOTAL_FACILITIES DESC
SELECT ca.emails, count(*)
AS TOTAL_FACILITIES
FROM table2
AS ca
GROUP BY ca.emails
ORDER BY TOTAL_FACILITIES DESC
这为我提供了每张 table 的不同电子邮件以及有多少设施使用它们。我现在尝试使用连接将其合并为一个调用,但我似乎不知道如何使计数工作。
有什么建议吗?
最佳答案
您可能想要UNION
它。
SELECT ce.email, count(*) AS TOTAL_FACILITIES
FROM table1 AS ce
GROUP BY ce.email
UNION
SELECT ca.emails, count(*) AS TOTAL_FACILITIES
FROM table2 AS ca
GROUP BY ca.emails
ORDER BY TOTAL_FACILITIES DESC
更好的解决方案是在聚合之前对其进行 UNION。
SELECT email, COUNT(*) AS TOTAL_FACILITIES
FROM (
SELECT facilities, email
FROM table1
UNION ALL
SELECT facilities, email
FROM table2
)
GROUP BY email
ORDER BY TOTAL_FACILITIES DESC
关于mysql - SQL 组合跨多个表的两个选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47660835/