Поиск по сайту:
Возвыситься нетрудно, трудно остаться при этом самим собой (Ж. Мишле).

SQL — Оператор INNER JOINS

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
29.04.2017
SQL - Оператор INNER JOINS

Наиболее важным и наиболее часто используемым из объединений является оператор INNER JOIN . Также называют эквисоединением.

INNER JOIN создает новую таблицу результатов из объединения значений столбцов из двух таблиц (table1 и table2) на основе Join-predicate. Запрос сравнивает каждую строку table1 с каждой строкой table2, чтобы найти все пары строк, удовлетворяющих Join-predicate. Когда join-predicate выполняются, значение столбцов для каждой согласованной пары рядов А и В, объединяется в строку результата.

Синтаксис

Основной синтаксис INNER JOIN следующим:

SELECT table1.column1, table2.column2...
FROM table1
INNER JOIN table2
ON table1.common_field = table2.common_field;

Пример

Рассмотрим следующие две таблицы.

Таблица 1 — Таблица CUSTOMERS выглядит следующим образом:

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Maxim    |  35 | Moscow    | 21000.00 |
|  2 | AndreyEx |  38 | Krasnodar | 55500.00 |
|  3 | Oleg     |  33 | Rostov    | 34000.00 |
|  4 | Masha    |  35 | Moscow    | 34000.00 |
|  5 | Ruslan   |  34 | Omsk      | 45000.00 |
|  6 | Dima     |  32 | SP        | 45000.00 |
|  7 | Roma     |  34 | SP        | 10000.00 |
+----+----------+-----+-----------+----------+

 

Таблица 2 — Таблица ORDERS выглядит следующим образом:

+-----+---------------------+-------------+--------+
|OID  | DATE                | CUSTOMER_ID | AMOUNT |
+-----+---------------------+-------------+--------+
| 102 | 2017-01-11 00:00:00 |           3 |  34000 |
| 100 | 2017-01-11 00:00:00 |           3 |  34000 |
| 101 | 2017-02-02 00:00:00 |           2 |  12500 |
| 103 | 2017-03-05 00:00:00 |           4 |  45000 |
+-----+---------------------+-------------+--------+

 

Теперь, давайте объединим эти две таблицы с помощью INNER JOIN следующим образом:

SQL> SELECT  ID, NAME, AMOUNT, DATE
   FROM CUSTOMERS
   INNER JOIN ORDERS
   ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

 

Это выведет следующий результат:

+----+----------+--------+---------------------+
| ID | NAME     | AMOUNT | DATE                |
+----+----------+--------+---------------------+
|  3 | Oleg     |  34000 | 2017-01-11 00:00:00 |
|  3 | Oleg     |  34000 | 2017-01-11 00:00:00 |
|  2 | AndreyEx |  12500 | 2017-02-02 00:00:00 |
|  4 | Masha    |  45000 | 2017-03-05 00:00:00 |
+----+----------+--------+---------------------+

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Спасибо!

Теперь редакторы в курсе.