MariaDB подзапросы (subqueries)

В этом учебном пособии вы узнаете, как использовать MariaDB подзапросы в MariaDB с синтаксисом и примерами.

Описание

В MariaDB подзапрос - это запрос в запросе. Вы можете создавать подзапросы в своих SQL запросах. Эти подзапросы могут находиться в операторе WHERE, операторе FROM или операторе SELECT.

Примечание

  • В MariaDB подзапрос также называется INNER QUERY или INNER SELECT.
  • В MariaDB основной запрос, содержащий подзапрос, также называется OUTER QUERY или OUTER SELECT.

WHERE оператор

Чаще всего подзапрос будет найден в операторе WHERE. Эти подзапросы также называются вложенными подзапросами.
Например:

Часть подзапроса оператора SELECT выше:

Этот подзапрос позволяет найти все значения site_id из таблицы pages, у которых file_size больше 89. Подзапрос затем используется для фильтрации результаты основного запроса с использованием условия IN.
Этот подзапрос мог бы быть записан как INNER join следующим образом

Этот INNER JOIN будет работать более эффективно, чем исходный подзапрос. Однако важно отметить, что не все подзапросы можно переписать с помощью Joins.

FROM оператор

Подзапрос также можно найти в операторе FROM. Они называются встроенными представлениями.
Например:

В этом примере мы создали подзапрос в операторе FROM следующим образом:

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

SELECT оператор

Подзапрос также можно найти в операторе SELECT. Они обычно используются, когда вы хотите получить расчет с использованием агрегатной функции, такой как функция SUM, COUNT, MIN, MAX или AVG, но вы не хотите, чтобы агрегатная функция применялась к основному запросу.
Например:

В этом примере мы создали подзапрос в операторе SELECT следующим образом:

Подзапрос имеет псевдоним с именем subquery2. Это будет имя, используемое для ссылки на этот подзапрос или любое из его полей.
Хитрость в размещении подзапроса в операторе SELECT заключается в том, что подзапрос должен возвращать одно значение. Вот почему агрегатная функция, такая как SUM, COUNT, функция MIN, MAX или AVG обычно используется в подзапросе.