Подзапросы в инструкции SELECT
Подзапрос <$I[]подзапрос в инструкции SELECT > — это запрос, который размещается внутри другого запроса, а точнее, является частью предложения WHERE (или HAVING) основного запроса и заключается в круглые скобки. Иногда подзапросы называют <$I[]вложенный запрос в инструкции SELECT > вложенными запросами. Запрос, содержащий подзапрос, называют <$I[]сложный SELECT-запрос> сложным запросом. При выполнении сложного запроса сначала выполняется подзапрос (он для этого и заключается в скобки!), а затем — основной запрос. Выходные данные подзапроса обычно используются при оценке выражения в предложении WHERE (или HAVING) основного (по отношению к данному подзапросу) запроса с использованием таких операторов, как =, >, <, <>, IN, NOT IN, AND, OR. (Эти операторы можно использовать и внутри подзапроса.) Очень важно понимать, какие данные возвращает подзапрос, поскольку от этого зависит синтаксис использования предложения WHERE. Необходимо при написании сложных запросов соблюдать следующие правила: · Предложение SELECT подзапроса обычно содержит только один столбец и, следовательно, может иметь результатом массив однородных (только строковые значения, только целые значения и т.д.) значений или только одно значение. Очень редко встречаются случаи использования нескольких столбцов. Если подзапрос возвращает массив значений, соответствующее этому подзапросу предложение WHERE может содержать только многозначные операторы, например, IN. · Предложение ORDER BY следует использовать только в основном запросе. В подзапросе для упорядочения данных необходимо применять предложение GROUP BY. · Недопустимо использование в основном запросе предложения BETWEEN. Простой синтаксис подзапроса для оператора SELECT следующий:
|