1

次の表があります。テーブルチームにクエリを実行する方法は次のとおりです。

    ID,Name,City,League
    1,Name1,City1, A
    2,Name2,City1, B
4

3 に答える 3

2

秘訣は、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)

ここでは、SQLFiddle で動作しています

于 2012-10-09T02:14:37.513 に答える
0

都市に関連付けられたリーグのリストにないリーグが存在しないすべての都市:

 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))
于 2012-10-09T02:17:42.640 に答える
0

あなたが英語で言ったのとほぼ同じですが、ひねりがあります...すべてのリーグで名前を持つすべての都市が必要です。言い換えると、名前のないリーグが存在しないすべての都市が必要ですあの街から.;.

  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) ))
于 2012-10-09T02:20:33.800 に答える