ИСПОЛЬЗОВАНИЕ ВЫРАЖЕНИЙ В ПОДЗАПРОСАХ
Вы можете использовать
выражение основанное на столбце, а не просто сам столбец, в предложении SELECT подзапроса. Это может быть
выполнено или с помощью реляционных операторов или с IN. Например, следующий запрос использует реляционный
оператор = ( вывод показывается в Рисунке 10.6 ):
SELECT * FROM Customers WHERE cnum = ( SELECT snum + 1000 FROM Salespeople WHERE sname = Serres );
Он находит всех заказчиков чье значение поля cnum равное 1000, выше поля snum Serres.
Мы предполагаем что столбец sname не имеет никаких двойных значений ( это может быть предписано или
UNIQUE INDEX,
или ограничением UNIQUE, обсуждаемые далее ); иначе
cnum |
cname |
city |
rating |
snum |
2002 |
Giovanni |
Rome |
200 |
1003 |
Рисунок 10.6: Использование подзапроса с выражением
подзапрос может произвести многочисленые значения. Когда поля snum и
сnum не имеют такого простого функционального значения как например первичный ключ , что не всегда
хорошо, запрос
типа вышеупомянутого невероятно полезен.