MySQL присоединяется
Объединение таблиц MySQL
Предложение JOIN
используется для объединения строк из двух или более таблиц на основе связанного столбца между ними.
Посмотрим на выборку из таблицы "Заказы":
OrderID | CustomerID | OrderDate |
---|---|---|
10308 | 2 | 1996-09-18 |
10309 | 37 | 1996-09-19 |
10310 | 77 | 1996-09-20 |
Затем посмотрите на выборку из таблицы «Клиенты»:
CustomerID | CustomerName | ContactName | Country |
---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mexico |
Обратите внимание, что столбец «CustomerID» в таблице «Orders» ссылается на «CustomerID» в таблице «Customers». Связь между двумя приведенными выше таблицами — это столбец «CustomerID».
Затем мы можем создать следующую инструкцию SQL (содержащую
INNER JOIN
), которая выбирает записи, имеющие совпадающие значения в обеих таблицах:
Пример
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
и он будет производить что-то вроде этого:
OrderID | CustomerName | OrderDate |
---|---|---|
10308 | Ana Trujillo Emparedados y helados | 9/18/1996 |
10365 | Antonio Moreno Taquería | 11/27/1996 |
10383 | Around the Horn | 12/16/1996 |
10355 | Around the Horn | 11/15/1996 |
10278 | Berglunds snabbköp | 8/12/1996 |
Поддерживаемые типы объединений в MySQL
INNER JOIN
: возвращает записи с совпадающими значениями в обеих таблицах.LEFT JOIN
: возвращает все записи из левой таблицы и соответствующие записи из правой таблицы.RIGHT JOIN
: возвращает все записи из правой таблицы и соответствующие записи из левой таблицы.CROSS JOIN
: возвращает все записи из обеих таблиц.