Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查询关联N-N_Sql_Database_Foreign Keys - Fatal编程技术网

Sql 查询关联N-N

Sql 查询关联N-N,sql,database,foreign-keys,Sql,Database,Foreign Keys,我的数据库中有如下表格: 注意: ID\u外键引用A(ID) ID_B外键引用B(ID) 现在我的问题是: 假设有一个像{12,15,26}这样的ID列表,我想找到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 但它并没有表现得那么出色

我的数据库中有如下表格:

注意:
ID\u外键引用A(ID)
ID_B外键引用B(ID)

现在我的问题是:
假设有一个像{12,15,26}这样的ID列表,我想找到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(最多两个减法值)值的所有记录)。

执行
分组,使用
HAVING
确保找到所有不同的ID\u a值:

select ID_B
from AB
where ID_A in (12, 15, 26)
group by ID_B
having count(distinct ID_A) = 3