Поделиться через


Столбцы в соединениях

Оператор JOIN выявляет совпадающие строки путем сравнения значений одной таблицы со значениями в другой. Решение о том, какие столбцы таблиц должны быть сопоставлены, принимает разработчик. Доступно несколько вариантов:

  • Связанные столбцы — как правило, соединение таблиц осуществляется путем сопоставления значений в столбцах, для которых существует связь внешнего ключа. Например, можно связать скидки с магазинами, сопоставив значения столбца "stor_id" в соответствующих таблицах. Конечный код SQL может выглядеть следующим образом:

    SELECT *
    FROM discounts INNER JOIN stores 
         ON stores.stor_id = discounts.stor_id
    

    Дополнительные сведения о соединении таблиц по связанным столбцам см. в разделе Автоматическое соединение таблиц.

  • Не связанные столбцы — можно также соединить таблицы путем сопоставления значений в столбцах, для которых отсутствует связь внешнего ключа. Например, можно связать издателей с авторами, сопоставив значения столбца "state" в соответствующих таблицах. Такое соединение позволяет получить результирующий набор, в котором каждая из строк описывает пару автора и издателя, которые находятся в одной и той же области.

    SELECT au_lname, 
           au_fname, 
           pub_name, 
           authors.state
    FROM   authors INNER JOIN publishers 
                   ON authors.state 
                    = publishers.state
    

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

Кроме того, следует обратить внимание, что сопоставление строк из соединенных таблиц можно выполнять по нескольким столбцам. Например, чтобы выявить пары автора и издателя, в которых автор и издатель находятся в одном городе, можно воспользоваться операцией соединения, в которой сопоставляются столбцы области и города двух соответствующих таблиц. Необходимо сопоставить как город, так и область, поскольку города с одинаковым именем могут находиться в разных городах (например, Красноармейск).

Дополнительные сведения о соединении таблиц по нескольким столбцам см. в разделе Соединение таблиц по нескольким столбцам.

См. также

Ссылки

Соединить свойства

Другие ресурсы

Конструирование запросов и представлений