кодесурса
«MYSQL

MySQL NATURAL JOIN

script1adsense2code
script1adsense3code

Natural Join

В MySQL NATURAL JOIN - это такое соединение, которое выполняет ту же задачу, что и INNER или LEFT JOIN, в котором предложение ON или USING ссылается на все столбцы, которые имеют общие таблицы, к которым нужно присоединиться.

MySQL NATURAL JOIN структурирован таким образом, что столбцы с одинаковыми именами ассоциированных таблиц появляются только один раз.

Natural Join: Руководство:

  • Связанные таблицы имеют одну или несколько пар столбцов с одинаковыми именами.
  • Столбцы должны быть одного типа данных.
  • Не используйте предложение ON в ЕСТЕСТВЕННОМ СОЕДИНЕНИИ.

Иллюстрированная презентация MySQL NATURAL JOIN:

«Иллюстрированные

MySQL NATURAL JOIN Синтаксис:

MySQL поддерживает следующие синтаксисы JOIN для table_references (ссылка на таблицу также известна как выражение соединения.) Часть операторов SELECT и операторов UPDATE и DELETE для нескольких таблиц:

 table_references:
    escaped_table_reference [, escaped_table_reference] ...
escaped_table_reference:
    табличная_ссылка
  | {OJ table_reference}
табличная_ссылка:
    table_factor
  | join_table
table_factor:
    tbl_name [PARTITION (имя_раздела)] 
        [[AS] псевдоним] [index_hint_list]
  | table_subquery [AS] псевдоним
  | (table_references)
join_table:
    table_reference [INNER | CROSS] JOIN table_factor [join_condition]
  | table_reference STRAIGHT_JOIN table_factor
  | table_reference STRAIGHT_JOIN table_factor ON conditional_expr
  | table_reference {LEFT | RIGHT} [OUTER] JOIN table_reference join_condition
  | table_reference NATURAL [{LEFT | RIGHT} [OUTER]] JOIN table_factor
join_condition:
    ON conditional_expr
  | ИСПОЛЬЗОВАНИЕ (column_list)
index_hint_list:
    index_hint [, index_hint] ...
index_hint:
    USE {INDEX | KEY}
      [FOR {JOIN | ORDER BY | GROUP BY}] ([index_list])
  | IGNORE {INDEX | KEY}
      [FOR {JOIN | ORDER BY | GROUP BY}] (index_list)
  | СИЛА {ИНДЕКС | КЛЮЧ}
      [FOR {JOIN | ORDER BY | GROUP BY}] (index_list)
index_list:
    index_name [, index_name] ... 

Пример: MySQL NATURAL JOIN

В следующем примере id является общим столбцом для таблицы и соответствующих строк на основе этого общего столбца из обеих таблиц.

Код:

SELECT id,aval1,cval1
FROM table111
NATURAL JOIN table113;

INNER JOIN с помощью предложения ON выполняют ту же работу. Вот следующее -

Код:

SELECT table1111.id,table111.aval1,table113.cval1
FROM table111
INNER JOIN table113
ON table111.id=table113.id;

Образцы таблиц:


Пример вывода:

 mysql> SELECT id, aval1, cval1
    -> ИЗ таблицы111
    -> ЕСТЕСТВЕННОЕ СОЕДИНЕНИЕ table113;
+ ------ + ------- + ------- +
| id | aval1 | CVAL1 |
+ ------ + ------- + ------- +
| 3 | 200 | 17 | 
| 2 | 401 | 12 | 
| 1 | 405 | 16 | 
+ ------ + ------- + ------- +
3 ряда в наборе (0,00 сек)

Пример: MySQL NATURAL JOIN с предложением WHERE

Код:

SELECT id,aval1,cval1
FROM table111
NATURAL JOIN table113
WHERE table111.aval1>200;

Пример вывода:

 mysql> SELECT id, aval1, cval1
    -> ИЗ таблицы111
    -> ЕСТЕСТВЕННОЕ СОЕДИНЕНИЕ table113
    -> ГДЕ таблица111.aval1> 200;
+ ------ + ------- + ------- +
| id | aval1 | CVAL1 |
+ ------ + ------- + ------- +
| 2 | 401 | 12 | 
| 1 | 405 | 16 | 
+ ------ + ------- + ------- +
2 ряда в наборе (0,00 сек)

MySQL NATURAL JOIN с использованием трех таблиц

Код:

SELECT id,aval1,cval1
FROM table111
NATURAL JOIN table113
natural join table114
WHERE table111.aval1>200;

Пример вывода:

 mysql> SELECT id, aval1, cval1
    -> ИЗ таблицы111
    -> ЕСТЕСТВЕННОЕ СОЕДИНЕНИЕ table113
    -> естественное соединение таблицы114
    -> ГДЕ таблица111.aval1> 200;
+ ------ + ------- + ------- +
| id | aval1 | CVAL1 |
+ ------ + ------- + ------- +
| 1 | 405 | 16 | 
+ ------ + ------- + ------- +
1 ряд в наборе (0,05 сек)

Ключевые моменты для запоминания

Нажмите на следующее, чтобы получить презентацию слайдов -

«MySQL

ЕСТЕСТВЕННЫЕ СОЕДИНЕНИЯ: SQL и другие реляционные базы данных

Предыдущая: CROSS JOIN
Далее: MySQL подзапросы

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code