Столбцы в соединениях
Оператор 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
Дополнительные сведения о соединении таблиц по столбцам, которые не являются связанными, см. в разделе соединение таблиц вручную.
Кроме того, следует обратить внимание, что сопоставление строк из соединенных таблиц можно выполнять по нескольким столбцам.Например, чтобы выявить пары автора и издателя, в которых автор и издатель находятся в одном городе, можно воспользоваться операцией соединения, в которой сопоставляются столбцы области и города двух соответствующих таблиц.Необходимо сопоставить как город, так и область, поскольку города с одинаковым именем могут находиться в разных городах (например, Красноармейск).
Дополнительные сведения о соединении таблиц по нескольким столбцам см. в разделе Соединение таблиц по нескольким столбцам.