我的数据库上有表格如下:
NB:
ID_A外键引用A(ID)
ID_B外键引用B(ID)
现在我的问题是:
假设有一个A id列表,如{12,15,26},我想找到B的所有值,将所有值与集合相关联。
我可以这样做:
select ID_B from AB where ID_A = 12
intersect
select ID_B from AB where ID_A = 15
intersect
select ID_B from AB where ID_A = 26
但它并不那么表现和优雅。这是正确的方法吗?
如果我想找到具有最大n个错误的集合中的值的结果? (例如,n = 2 - >查找具有集合中所有值的所有记录以及所有具有+2(最多两个值)和-2(在减法中最多两个值)的记录集合中的值。)
答案 0 :(得分:1)
执行GROUP BY
,使用HAVING
确保找到所有不同的ID_A值:
select ID_B
from AB
where ID_A in (12, 15, 26)
group by ID_B
having count(distinct ID_A) = 3