Join Inner - сеть, которая поможет вам достичь успеха
Join Inner - это один из типов соединений таблиц в SQL, который позволяет объединить строки двух таблиц, у которых есть общие значения в одном или нескольких столбцах. При использовании JOIN INNER в результате получается новая таблица, которая содержит только те строки, которые удовлетворяют условию соединения.
Пример:
Предположим, у нас есть две таблицы - "покупатели" (Customers) и "заказы" (Orders).
Таблица Customers:
CustomerID | CustomerName | ContactName | Country
-----------|--------------|-------------|--------
1 | Alfreds | Maria | Germany
2 | Ana Trujillo | Ana | Mexico
3 | Antonio | Antonio | Mexico
Таблица Orders:
OrderID | CustomerID | OrderDate | ShipperName
--------|------------|------------|------------
1 | 3 | 2020-01-01 | FedEx
2 | 1 | 2020-01-02 | UPS
3 | 2 | 2020-01-03 | FedEx
Для того, чтобы объединить эти две таблицы по полю "CustomerID", которое имеется в обеих таблицах, можно использовать оператор JOIN INNER.
Пример запроса:
SELECT Customers.CustomerName, Orders.OrderDate
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
Результат:
CustomerName | OrderDate
--------------|------------
Antonio | 2020-01-01
Alfreds | 2020-01-02
Ana Trujillo | 2020-01-03
В результате мы получили новую таблицу, которая содержит только те строки, где значения поля "CustomerID" в обеих таблицах совпадают. Таким образом, мы увидели, что Аntonio делал заказ в нашей компании в 2020-01-01, Alfreds - в 2020-01-02, а Ana Trujillo - в 2020-01-03.
Также возможно использовать JOIN INNER с более чем одним условием соединения. Например, можно объединить таблицы по двум полям - "CustomerID" и "ShipperName":
SELECT Customers.CustomerName, Orders.OrderDate
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
AND Orders.ShipperName = 'FedEx';
Результат:
CustomerName | OrderDate
--------------|------------
Antonio | 2020-01-01
Ana Trujillo | 2020-01-03
В этом запросе мы получили только те строки, где значение поля "ShipperName" равно "FedEx".