Читайте также: |
|
WHERE СТУДЕНТ.ЛичныйНомер = ЗАПИСЬ.НомерСтудента
AND СТУДЕНТ.Имя = 'РАЙ'
AND ЗАПИСЬ.ПорядковыйНомер = 1
Здесь дополнительные квалификаторы — это условия СТУДЕНТ.Имя = 'РАЙ' и ЗАПИСЬ.ПорядковыйНомер = 1. Это выражение будет иметь своим результатом список учетных номеров всех студентов по имени Рай, кто записался первым на какой-либо предмет, и список соответствующих предметов.
Когда требуются данные более чем из двух таблиц, мы можем использовать аналогичную стратегию. В следующем примере соединяются три таблицы:
SELECT СТУДЕНТ.ЛичныйНомер, ЗАНЯТИЯ.НазваниеПредмета, ЗАНЯТИЯ.Время. ЗАПИСЬ ПорядковыйНомер
FROM СТУДЕНТ, ЗАПИСЬ, ПРЕДМЕТ
WHERE СТУДЕНТ.ЛичныйНомер = ЗАПИСЬ.НомерСтудента
AND ЗАПИСЬ.НазваниеПредмета = ЗАНЯТИЯ.НазваниеПредмета
AND СТУДЕНТ.Имя = 'БЕЙКЕР'
Результатом этой операции будет:
BD445 | ПСЯЗ | ||
CS250 | ПСЯ12 | ||
CS150 | ПСЯЗ |
Сравнение вложенного запроса и соединения
Соединение может использоваться в качестве альтернативы множеству вложенных запросов. Например, мы использовали вложенный запрос для нахождения студентов, записанных на предмет BD445. Для представления этого запроса мы также можем использовать соединение:
SELECT СТУДЕНТ Имя
FROM СТУДЕНТ. ЗАПИСЬ
WHERE СТУДЕНТ ЛичныйНомер = ЗАПИСЬ НомерСтудента
AND ЗАПИСЬ НазваниеПредмета = 'BD445'
Подобным же образом вопрос «Каковы имена студентов, занимающихся по понедельникам, средам и пятницам в 3 часа?» может быть представлен в виде запроса
SELECT СТУДЕНТ.Имя
Дата добавления: 2015-07-08; просмотров: 218 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
FROM СТУДЕНТ | | | FROM ЗАПИСЬ В |