Здравствуйте, прошу помочь с запросом SELECT.
Есть таблица "Продавцы" в ней следующие столбцы (Фамилия_продавца, Город)
Нужно вывести все пары Продавцов которые живут в одном городе. Исключить комбинации Продавцов с самим собой, а также дубликаты строк, которые выводиться в обратном порядке.
Могу дать подсказку, что нужно соединить таблицу продавцы саму с собой по общему атрибуту город:
select P1.*, P2.*
from [Продавцы] as P1
join [Продавцы] as P2 on P1.[Город] = P2.[Город]
-- where
Но поскольку данный сайт не для халявных ответов, а для обмена опытом. Вы должны подумать, что написать в where, чтобы полностью выполнить условия задачи.
Я сделал следующим образом.
---------------------------------------------------------------------------------------
SELECT A.Продавцы, B.Продавцы, A.Город
FROM View_продавцы A, Продавцы B
WHERE (A.Продавцы != B.Продавцы AND A.Город = B.Город);
---------------------------------------------------------------------------------------
Но проблема в том что я не знаю как мне убрать повторения в обратом порядке ((
Мне выводит:
---------------------------------------------------------------------------------------
Тарасов, Усов, Москва
Усов, Тарасов, Москва
---------------------------------------------------------------------------------------
Теперь я должен исключить как то повторения но как не понимаю...
... and not exists (select 1
from ... такая же конструкция from как в основном запросе, но псевдонимы таблицы A1, B1...
where ... такие же условия как в основном запросе, но с псевдонимами A1, B1
and соединяем условия из внешнего запроса A, B в обратном порядке продавцов A1, B1, город общий тоже)
И последний штрих - добавить distinct, если продавцы повторяются, но это страховка от повторений, можно не добавлять.