Архив документации OpenNet.ru / Раздел "Базы данных, SQL" / Индекс

3.3.3. Использование одной и той же таблицы во внешнем и вложенном подзапросе

Выдать номера поставщиков, которые поставляют хотя бы один продукт, поставляемый поставщиком 6.

Результат:
SELECT	DISTINCT ПС
FROM	Поставки
WHERE	ПР IN
	(	SELECT	ПР
		FROM	Поставки
		WHERE	ПС = 6);
ПС
1
3
5
6
8

Отметим, что ссылка на Поставки во вложенном подзапросе означает не то же самое, что ссылка на Поставки во внешнем запросе. В действительности, два имени Поставки обозначают различные значения. Чтобы этот факт стал явным, полезно использовать псевдонимы, например, X и Y:

SELECT	DISTINCT X.ПС
FROM	Поставки X
WHERE	X.ПР IN
	(	SELECT	Y.ПР
		FROM	Поставки Y
		WHERE	Y.ПС = 6 );

Здесь X и Y √ произвольные псевдонимы таблицы Поставки, определяемые во фразе FROM и используемые как явные уточнители во фразах SELECT и WHERE. Напомним, что псевдонимы определены лишь в пределах одного запроса.

3.3.2 | Содержание | 3.3.4


Архив документации на OpenNet.ru