ВВЕРХ

SQL Joins

SQL JOIN

Выражение JOIN используется для объединения строк из двух или более таблиц на основе связанного столбца между ними.


Посмотрим на выборку из таблицы "Orders" ("Заказ"):

ProductIDOrderIDCustomerIDEmployeeIDOrderDateShipperID
1102489051996-07-043
2102498161996-07-051
3102503441996-07-082

Затем просмотрите выборку из таблицы "Customers" ("Клиенты"):

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico

Обратите внимание, что столбец "CustomerID" в таблице "Orders" относится к "CustomerID" в таблице "Customers". Связь между двумя таблицами выше – столбец "CustomerID".

Тогда мы можем создать следующую SQL-инструкцию (содержащую INNER JOIN), которая выбирает записи, имеющие соответствующие значения в обеих таблицах:

Run SQLSELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID

и это даст нечто подобное:

OrderIDCustomerNameOrderDate
10308Ana Trujillo Emparedados y helados1996-09-18
10365Antonio Moreno Taquería1996-11-27
10355Around the Horn1996-11-15
10383Around the Horn1996-12-16
10289B's Beverages1996-08-26

Различные типы SQL JOIN

Вот разные типы JOIN в SQL:

  • (INNER) JOIN: Возвращает записи, имеющие соответствующие значения в обеих таблицах
  • LEFT (OUTER) JOIN: Возвращает все записи из левой таблицы и соответствующие записи из правой таблицы
  • RIGHT (OUTER) JOIN: Возвращает все записи из правой таблицы и соответствующие записи из левой таблицы
  • FULL (OUTER) JOIN: Возвращает все записи, если есть соответствие в левой или правой таблице


  • SQL INNER JOIN  SQL LEFT JOIN  SQL RIGHT JOIN  SQL FULL OUTER JOIN