Как написать запрос в следующем случае?

У меня есть следующая таблица. Как мне выполнить команду Table Team следующим образом:

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) 

Здесь он работает в SQLFiddle

Все города, для которых не существует Лиги, которой нет в списке Лиг, связанных с городом:

  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) ))