#sql #relational-database
Вопрос:
пытаюсь что — то понять-только начинаю изучать SQL, и я озадачен проблемой: у меня есть таблица с 3 столбцами:
- идентификатор клиента
- номер счета
- Город
У каждого клиента может быть несколько учетных записей, и у каждой учетной записи может быть несколько идентификаторов. Город указан по идентификатору, а не по учетной записи (город жителей). Я хочу написать запрос, который извлекает все учетные записи, в которых ВСЕ владельцы учетных записей находятся в определенном городе (например, в городе А). Это означает, что если у определенной учетной записи есть владелец в городе А и Владелец в городе В, она не будет извлечена. как бы я это сделал?? смотрите пример:
- ИДЕНТИФИКАТОР УЧЕТНОЙ ЗАПИСИ ГОРОД
- 65489 1234 Лондон
- 12345 1567 Нью-Йорк
- 12345 8956 Нью-Йорк
- 11236 6324 Париж
- 66523 1234 Нью-Йорк
- 66523 3321 Париж
- 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 )