|
||||||||||||||||
INNER JOINВ прошлой теме было рассмотрено неявное соединение таблиц. Оно производилось на основе простой выборки неявно путем сведения данных. Для явного соединения данных из двух таблиц применяется оператор JOIN. Общий формальный синтаксис применения оператора INNER JOIN:
После оператора JOIN идет название второй таблицы, из которой надо добавить данные в выборку. Перед JOIN может использоваться необязательное ключевое слово INNER. Его наличие или отсутствие ни на что не влияет. Затем после ключевого слова ON указывается условие соединения. Это условие устанавливает, как две таблицы будут сравниваться. В большинстве случаев для соединения применяется первичный ключ главной таблицы и внешний ключ зависимой таблицы. Возьмем таблицы с данными из прошлой темы:
Используя JOIN, выберем все заказы и добавим к ним информацию о товарах:
Поскольку таблицы могут содержать столбцы с одинаковыми названиями, то при указании столбцов для выборки указывается их полное имя вместе с именем таблицы, например, " Orders. ProductCount".
Также используя псевдонимы, мы можем сократить код:
Подобным образом мы можем присоединять и другие таблицы. Например, добавим к заказу информацию о покупателе из таблицы Customers:
Благодаря соединению таблиц мы можем использовать их столбцы для фильтрации выборки или ее сортировки:
Условия после ключевого слова ON могут быть более сложными по составу:
В данном случае выбираем все заказы на товары, производителем которых является Apple. При использовании оператора JOIN следует учитывать, что процесс соединения таблиц может быть ресурсоемким, поэтому следует соединять только те таблицы, данные из которых действительно необходимы. Чем больше таблиц соединяется, тем больше снижается производительность.
|
||||||||||||||||
|