0

2列のデータがあります

参照 > ターゲット
1 > 4
1 > 7
2 > 5
3 > 6
4 > 1

ターゲットによっても選択されているすべての参照を選択するクエリを MySQL で実行したいと考えています。したがって、1 > 4 および 4 > 1 です。

私が得ることができる最も遠いものは次のとおりです。

SELECT refer FROM table WHERE refer IN
(SELECT target FROM table)

しかし、それは、一致するものではなく、他の列にあるものをリストするだけです。

4

3 に答える 3

1
SELECT DISTINCT t1.*
FROM myTable t1
JOIN myTable t2
  ON t1.Refer = t2.Target
  AND t1.Target = t2.Refer
于 2012-04-25T23:10:08.563 に答える
0

このクエリを過度に複雑にする必要があるとは思わない

SELECT refer FROM TABLE WHERE (refer = '1' and target = '4') or (refer ='4' and target = '1')
于 2012-04-25T23:10:09.583 に答える
0

これには自己結合を使用できます。

SELECT a.refer, a.target FROM tbl a
INNER JOIN
(
    SELECT refer, target FROM tbl
) b

ON a.target = b.refer AND a.refer = b.target
于 2012-04-25T23:10:16.310 に答える