整数値を含む column1 と column2 の 2 つの列を持つ match という SQLite テーブルがあります。
column1 column2
------------------
5 6
6 8
8 9
90 91
1 20
10 20
検索結果が次のようになるように、どちらかの列で見つかった重複した数値を照合し、一致する 2 番目の値を含めてそれらを結合します。
5, 6, 8, 9
1, 20, 10
(90 と 91 は一致しないため、含まれていないことに注意してください)。
これを作成する際の私の「推測」は次のとおりです。
SELECT column1, column2
FROM match
WHERE column2
IN (SELECT column1
FROM match
GROUP BY column1 HAVING (COUNT(column1) > 0))
UNION
SELECT column1, column2
FROM match
WHERE column1
IN (SELECT column2
FROM match
GROUP BY column1 HAVING (COUNT(column2) > 0))
UNION
SELECT column1, column2
FROM match
WHERE column1
IN (SELECT column1
FROM match
GROUP BY column1 HAVING (COUNT(column1) > 1))
UNION
SELECT column1, column2
FROM match
WHERE column2
IN (SELECT column2
FROM match
GROUP BY column2 HAVING (COUNT(column2) > 1))
結果はほとんど私が必要とするものです:
5 6
6 8
8 9
1 20
10 20
しかし、私が本当に必要としているのは、結果を何らかの方法でグループ化することです。例えば:
(5, 6, 8, 9) (1, 10, 20)
これは可能ですか?また、私の SQL の試行は複雑すぎますか?