Mysql 从两个表中选择数据的SQL查询
我有两个表格如下: 表1:Mysql 从两个表中选择数据的SQL查询,mysql,Mysql,我有两个表格如下: 表1: user_id ancestry --------- ---------- 1 England 1 Ireland 2 France 3 Germany 3 Poland 4 England 4 France 4 Germany 5 France 5 Germany 表2: country --------
user_id ancestry
--------- ----------
1 England
1 Ireland
2 France
3 Germany
3 Poland
4 England
4 France
4 Germany
5 France
5 Germany
表2:
country
---------
England
Germany
France
我需要编写一个sql查询,从表2中的每个国家挑选出所有拥有祖先的用户ID。我如何才能做到这一点。
如果一个用户ID
可以拥有来自同一国家的多个祖先,则需要使用DISTINCT
SELECT user_id
FROM Table1
GROUP BY user_id
HAVING COUNT(DISTINCT ancestry) = (SELECT COUNT(*) FROM Table2)
编辑:
我意识到table1
可以有不同于table2
的国家,比如irland
因此,您可能需要使用JOIN
查看存在多少匹配项
SELECT T1.user_id
FROM Table1 T1
JOIN Table2 T2
ON T1.ancestry = T2.country
GROUP BY T1.user_id
HAVING COUNT(DISTINCT T1.ancestry) = (SELECT COUNT(*) FROM Table2)
你能告诉我们到目前为止你已经尝试了什么吗?谢谢。它工作正常。有没有其他方法我可以做到?如果已经解决了你的问题,你想要另一个解决方案吗?