SQL одно и то же отношение к базе данных

#sql #relational-database

Вопрос:

пытаюсь что — то понять-только начинаю изучать SQL, и я озадачен проблемой: у меня есть таблица с 3 столбцами:

  1. идентификатор клиента
  2. номер счета
  3. Город

У каждого клиента может быть несколько учетных записей, и у каждой учетной записи может быть несколько идентификаторов. Город указан по идентификатору, а не по учетной записи (город жителей). Я хочу написать запрос, который извлекает все учетные записи, в которых ВСЕ владельцы учетных записей находятся в определенном городе (например, в городе А). Это означает, что если у определенной учетной записи есть владелец в городе А и Владелец в городе В, она не будет извлечена. как бы я это сделал?? смотрите пример:

  1. ИДЕНТИФИКАТОР УЧЕТНОЙ ЗАПИСИ ГОРОД
  2. 65489 1234 Лондон
  3. 12345 1567 Нью-Йорк
  4. 12345 8956 Нью-Йорк
  5. 11236 6324 Париж
  6. 66523 1234 Нью-Йорк
  7. 66523 3321 Париж
  8. 11236 6639 Нью-Йорк

Я ищу учетную запись, все владельцы которой живут в Нью-Йорке, так что: единственная учетная запись здесь-12345. учетная запись 66523 нежизнеспособна, поскольку у нее есть владелец в Париже.

Комментарии:

1. Похоже, вы не прикрепили пример. В любом случае, пожалуйста, не прикрепляйте/не ссылайтесь ни на что — отредактируйте свой вопрос, чтобы показать примеры данных, а затем результат, которого вы хотите достичь на основе этих данных

Ответ №1:

Надеюсь, я правильно вас понял. Предполагая, что ваши данные находятся в табличных данных, ваш запрос может быть:

 SELECT DISTINCT  selected.account FROM  data AS selected WHERE  selected.city = 'New York'  AND NOT EXISTS(  SELECT  *  FROM  data AS other  WHERE  other.account = selected.account  AND other.city lt;gt; selected.city  )