В чем разница между внутренним соединением и неэквивалентным соединением?

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

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

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


person Mohit Saxena    schedule 02.03.2020    source источник
comment
Определения, которые я прочитал в Интернете. Пора следовать опубликованному академическому учебнику по информационному моделированию, реляционной модели и проектированию БД (включая нормализацию к более высоким НФ). (Руководства по языкам и инструменты для записи и использования дизайнов не являются такими учебниками.) (Также как статьи в вики или публикации в Интернете.)   -  person philipxy    schedule 02.03.2020
comment
Equijoin - это оператор RA (реляционная алгебра), и детали зависят от конкретного определения в конкретной версии RA. Итак, вам нужно рассказать нам, что вы под этим подразумеваете. неэквивалентное соединение не является стандартным. Где вы видели эти термины? Расскажите нам, почему вы думаете, что вещи совпадают или не совпадают, или в чем вы застряли, не зная. Не просите просто еще больше презентаций. SQL INNER JOIN ON выполняется при любом условии, поэтому неясно, что вы имеете в виду, может иметь другие операторы или даже иметь оператор. См. Как спросить, другой справочный центр ссылки, поиск в Google "домашнее задание stackexchange" и текст наведения курсора на стрелку.   -  person philipxy    schedule 02.03.2020


Ответы (1)


Это две разные вещи: «равноправные» и «неэквивалентные» соединения не зависят от типа логического соединения.

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

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

Как «равное соединение», так и «неравномерное соединение» можно использовать вместе с любым логическим соединением, например INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN и т. Д.

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

 диаграмма равноправного соединения

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

person David Ferenczy Rogožan    schedule 02.03.2020
comment
Я знаю, что равноправное соединение и неэквивалентное соединение - это не одно и то же. а как насчет внутреннего и неэквивалентного соединения? - person Mohit Saxena; 02.03.2020
comment
Как я написал в первом предложении, они не связаны. Вы можете иметь как равноправные, так и неэквивалентные INNER JOIN. Проверьте диаграмму и прочтите статьи, на которые я ссылаюсь. - person David Ferenczy Rogožan; 02.03.2020
comment
@MohitSaxena Помог ли мой ответ вам понять эти термины? Если да, примите мой ответ, это поможет другим найти соответствующую информацию, а также вознаградит мои усилия некоторыми очками репутации. - person David Ferenczy Rogožan; 05.03.2020