次の表があります。テーブルチームにクエリを実行する方法は次のとおりです。
ID,Name,City,League
1,Name1,City1, A
2,Name2,City1, B
秘訣は、COUNT(DISTINCT League)
都市ごとに を取得し、その数をCOUNT(DISTINCT League)
テーブル全体の合計リーグ数と比較することです。
SELECT
City,
COUNT(DISTINCT League) AS numleagues
FROM yourtable
GROUP BY City
/* Only cities which have the same number of distinct leagues as the total number of distinct leagues */
HAVING COUNT(DISTINCT League) = (SELECT COUNT(DISTINCT League) FROM yourtable)
都市に関連付けられたリーグのリストにないリーグが存在しないすべての都市:
SELECT DISTINCT City FROM Teams T1 WHERE NOT EXISTS
(SELECT * FROM Teams T2 WHERE League NOT IN
(SELECT League FROM Teams T3 WHERE T3.City = T1.City))
あなたが英語で言ったのとほぼ同じですが、ひねりがあります...すべてのリーグで名前を持つすべての都市が必要です。言い換えると、名前のないリーグが存在しないすべての都市が必要ですあの街から.;.
Select Distinct City From Table t
Where Not Exists
(Select Distinct League From Table L
Where Not Exists
(Select * From Table
Where City = t.City
And League = L.League
And Name Not in
(Select distinct Name from table
Where City = t.City) ))