кодесурса
«SQLite

SQLite CROSS JOIN

script1adsense2code
script1adsense3code

Как кросс-соединение работает в SQLite?

Когда две таблицы не имеют никакого отношения, SELECT создаст более фундаментальный тип объединения, который называется перекрестным или декартовым объединением. Декартово соединение является одной из фундаментальных реляционных операций. Это своего рода соединение, которое приводит к объединению всех строк из первой таблицы со всеми строками во второй.

В SQLite CROSS JOIN генерирует результирующий набор, который представляет собой произведение строк двух связанных таблиц, когда предложение WHERE не используется с CROSS JOIN.

В этом соединении результирующий набор появился путем умножения каждой строки первой таблицы на все строки второй таблицы, если с CROSS JOIN не было введено никаких условий.

Этот вид результата называется декартовым произведением.

В SQLite CROSS JOIN ведет себя как JOIN и INNER JOIN без каких-либо условий.

В стандартном SQL различие между INNER JOIN и предложением CROSS JOIN - ON можно использовать с INNER JOIN, с другой стороны, предложение ON нельзя использовать с CROSS JOIN.

Синтаксис:

 ВЫБРАТЬ [* | table1.col1, table1.col2, ...,
table2.col1, table2.col2 ...]
FROm таблица1
[CROSS JOIN] таблица2
состояние;

Пример:

Вот пример таблицы.

 стол - таблица_а
id des1 des2
---------- ---------- --------
100 desc11 desc12
101 desc21 desc22
102 desc31 desc32
таблица - table_b
id des3 des4
---------- ---------- --------
101 desc41 desc42
103 desc51 desc52
105 desc61 desc62

Вот пример.

SELECT *
FROM table_a
CROSS JOIN table_b;

Ее выход.

 id des1 des2 id des3 des4
---------- ---------- ---------- ---------- ---------- -------
100 desc11 desc12 101 desc41 desc42
100 desc11 desc12 103 des5151 desc52
100 desc11 desc12 105 desc61 desc62
101 desc22 desc22 101 desc41 desc42
101 desc21 desc22 103 desc51 desc52
101 desc21 desc22 105 desc61 desc62
102 desc32 desc32 101 desc41 desc42
102 desc32 desc32 103 des5151 desc52
102 desc32 desc32 105 desc61 desc62

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

Пример: SQLite CROSS JOIN с предложением WHERE

В следующем примере CROSS JOIN были выполнены с предложением WHERE и аналогичны INNER JOIN с предложением ON.

SELECT *
FROM table_a
CROSS JOIN table_b
WHERE table_a.id=table_b.id;

Вот вывод.

 id des1 des2 id des3 des4
---------- ---------- ---------- ---------- ---------- -------
101 desc22 desc22 101 desc41 desc42

CROSS JOINS: SQL и другие реляционные базы данных

Предыдущая: ЛЕВАЯ НАРУЖНАЯ СОЕДИНЕНИЕ
Далее: ЕСТЕСТВЕННОЕ СОЕДИНЕНИЕ

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


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code