2 つのチーム間のサッカーの試合結果を含むテーブルがあります。まず、チームのドロップダウン メニューが必要です。これは単純に SELECT * FROM table GROUP BY Team_A のようなものにする必要があります
ただし、チームが Team_B 列にしか表示されない場合は、チームを見逃す可能性があります。列 Team_A と Team_B をグループ化して、両方の列ですべての一意のチームを出力できるようにすることはできますか?
あなたはただの意味ではありません:
group by Team_A, Team_B
?
これは、Team_A と Team_B の組み合わせによってグループ化されます
編集: 2 つの列で終了するには、それぞれがその列に既に存在するチームの一意のリストを持ちます (正確に OP で説明されているとおり):
SELECT a.*, b.* FROM
(SELECT Team_A, @ida := ifnull(@ida,0) + 1 AS ida FROM table GROUP BY Team_A) AS a
LEFT JOIN
(SELECT Team_B, @idb := ifnull(@idb,0) + 1 AS idb FROM table GROUP BY Team_B) AS b
ON a.ida=b.idb
and isnull(@ida := null) and isnull(@idb := null) -- reset @ida and @idb
UNION ALL -- turn the left and right join into full outer join
SELECT c.*, d.* FROM
(SELECT Team_A, @idc := ifnull(@idc,0) + 1 AS idc FROM table GROUP BY Team_A) AS c
RIGHT JOIN
(SELECT Team_B, @idd := ifnull(@idd,0) + 1 AS idd FROM table GROUP BY Team_B) AS d
ON c.idc=d.idd
and isnull(@idc := null) and isnull(@idd := null) -- reset @idc and @idd
WHERE c.idc is null -- prevent doubles in the full outer join