В чем разница между внутренним соединением и неравным соединением? - PullRequest
0 голосов
/ 02 марта 2020

Из определений, которые я прочитал на inte rnet, в равном соединении условием соединения является равенство (=), в то время как внутреннее объединение может иметь и другие операторы, например, меньше (<) или больше (>).

неэквивалентное объединение - это тип объединения, в котором условие соединения использует условные операторы, отличные от равных.

Означает ли это, что неравные и внутренние объединения одинаковы?

1 Ответ

0 голосов
/ 02 марта 2020

Это две разные вещи, соединения «equi-» и «non-equi» не зависят от типа логического соединения.

  • «Equi-join» это когда все столбцы в предложении ON совпадают по равенству, например ON t1.c1 = t2.c1 AND t1.c2 = t2.c2.

  • «Неэквивалентное объединение» - это когда один или больше столбцов используют сравнение неравенства (например, < меньше чем, > больше чем, <> не равно и т.д. c.), например ON t1.c1 = t2.c1 AND t1.c2 > t2.c2.

И "equi-join", и "non-equi-join" могут использоваться вместе с любым логическим соединением, например, INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN, et c.

Я нашел следующую диаграмму с сайта Complex SQL .com как самый простой способ понять это:

equi- non-equi-join diagram

Более подробную информацию можно прочитать, например, в Иллюстрированном руководстве по SQL Non Equi Join или SQL Объединениям для начинающих SQL Учебное пособие .

...