запрос через самосоединение таблиц MS Server
Использование псевдонимов для самосоединения таблиц. Вывести названия тех операторов, абоненты которых имеются как в Коломне, так и в Рязани.
SELECT r1.*, r2.*, Абоненты.*, Операторы.*
FROM (Города AS r1 JOIN Города AS r2 ON r1.Код = r2.Код) JOIN
(Абоненты JOIN Операторы ON Абоненты.Оператор = Операторы.Код) ON r1.Код = Абоненты.Город
WHERE (r2.Название = 'Рязань' OR r2.Название = 'Коломна') AND Абоненты.Город = r1.Код AND Абоненты.Город = r2.Код AND Абоненты.Оператор = Операторы.Код
я вот так написал, но нужно оставить только те строки, где оператор один и тот же

Ответы (1 шт):
Автор решения: vyacheslav
→ Ссылка
вот так получилось:
SELECT DISTINCT o1.Название [Название оператора]
FROM Абоненты As r1, Абоненты r2, Операторы o1, Операторы o2, Города g1, Города g2
WHERE g1.Название = 'Рязань' and g1.Код = r1.Город and r1.Оператор = o1.Код and g2.Название = 'Коломна' and g2.Код = r2.Город and r2.Оператор = o2.Код and r1.Оператор = r2.Оператор