我有这样的表
Table1
ID | Name
---------
1 Name1
2 Name2
3 Name3
Table2
ID | FindID Table1ID
--------------------
1 1 1
2 2 1
3 1 2
4 2 2
5 1 3
6 2 3
7 3 3
8 1 4
Table3
ID
--
1
2
我需要做的是-我需要找到所有表1 Ids,它们在表2中具有所有表3的值作为FindId列的值。 例如,如果表3中有1和2,则结果应返回
Result
ID
-----
1
2
3
因为Table1.Id = 1在表2中具有1和2,与Table1.Id = 2相同,而Table1.Id = 3具有1,2,3。 Table1.Id = 4只有1,因此它不包含在结果中。
如果表3中有1,2,3-那么将仅返回Table1.Id = 3。
我尝试过类似的事情
SELECT distinct t1.id FROM Table1 t1
join Table2 t2 on t2.Table1Id = t1.ID
join Table3 t3 on t3.Id = t2.FindId
但这不起作用。
答案 0 :(得分:1)
如果我的理解正确,那么您希望所有table2.table1id
中具有所有findId
的{{1}}。如果是这样,聚合应该做您想要的:
table3