Подзапросы

Подзапросы являются одним из самых мощных инструментов 💪 в SQL, который можно использовать в любых видах запросов. В ближайших уроках мы познакомимся с основными типами подзапросов и рассмотрим примеры как их можно использовать.

Подзапрос — это запрос, использующийся в другом SQL запросе. Подзапрос всегда заключён в круглые скобки и обычно выполняется перед основным запросом.

Как и любой другой SQL запрос, подзапрос возвращает результирующий набор, который может быть одним из следующих:

  • одна строка и один столбец;
  • нескольких строк с одним столбцом;
  • нескольких строк с несколькими столбцами.

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

Пример

Получим список всех бронирований самого дорогого на данный момент жилого помещения:

MySQL
SELECT * FROM Reservations
    WHERE Reservations.room_id = (
        SELECT id FROM Rooms ORDER BY price DESC LIMIT 1
    )

В данном случае запрос на получение самого дорогого жилого помещения выполняется в качестве подзапроса, а затем результат результирующего набора применяется в основном запросе.

MySQL
SELECT id FROM Rooms ORDER BY price DESC LIMIT 1
id
21

Более детально с каждым видом подзапросов мы познакомимся в следующих уроках.