我想从数据库表中提取所有行,这些行相互交叉引用。
我的表包含 2 行:ref1
& ref2
表示例:
ID ref1 ref2
01 23 83
02 77 55
03 83 23
04 13 45
在这种情况下,我希望我的查询仅返回行 01 和 03,因为它们相互交叉引用。
这可以使用单个查询,还是我需要手动迭代整个表?
我正在使用 MySQL。
最佳答案
一个简单的 JOIN 可以以直接的方式做到这一点;
SELECT DISTINCT a.*
FROM mytable a
JOIN mytable b
ON a.ref1 = b.ref2 AND a.ref2 = b.ref1;
An SQLfiddle to test with 。