给出一个包含此数据的表格:
L | N
-------------------
A | 1
A | 3
A | 5
B | 5
B | 7
B | 9
C | 1
C | 2
C | 3
编写一个优雅的SQL查询来实现这一目标:
FIND Letters(L)包括所有1,2和3
预期结果显而易见: 单行“C”
有人有解决方案吗?不,这不是CS的家庭作业问题。只是好奇你如何编写SQL查询来找到解决方案。
提前致谢, 丹尼尔
答案 0 :(得分:7)
select L
from MyTable
where N in (1,2,3)
group by L
having count(distinct N) = 3
答案 1 :(得分:0)
也可以 梅西耶,但通常更快 只会走这条L的路线很大,比如超过10万,而且你遇到了性能问题。
select L from mytable where N = 1
intersect
select L from mytable where N = 2
intersect
select L from mytable where N = 3