Подтвердить что ты не робот

Является ли внутреннее соединение таким же, как equi-join?

Можете ли вы сказать мне, являются ли внутренние соединения и равноединения одинаковыми или нет?

4b9b3361

Ответ 1

"Внутреннее соединение" не совпадает с "equi-join" в общих терминах.

'equi-join' означает объединение таблиц с использованием оператора равенства или эквивалента. Я бы по-прежнему вызывал внешнее соединение "equi-join", если он использует только равенство (другие могут не согласиться).

'internal join' выступает против 'external join' и определяет, как присоединиться к двум наборам, когда нет соответствующего значения.

Ответ 2

Я нашел эту статью об этом, думаю, она отвечает на ваш вопрос.

Они не связаны.

Почти каждое соединение является эквитионом, потому что условие соответствия строки основаны на равенстве двух значения - по одному от каждой таблицы соединяется. Итак, что это делает equijoin: условие ON равенство. Это включает внутренние соединения и все три типа внешних соединений.

Внутренние соединения, с другой стороны, могут быть на основе равенства для соответствия строкам или по какое-то другое условие полностью. Если это а не equijoin, то это обычно называется тета-объединением, хотя точная, равноценность является лишь одним из возможное объединение тета; другие тета соединения используются меньше, чем или меньше равным и т.д., поскольку сравнение Оператор.

Прочитайте всю статью

Ответ 3

Ответ НЕТ.

Equi-join используется для сопоставления двух столбцов из двух таблиц с использованием явного оператора =:

Пример:

select *
  from table T1, table2 T2
  where T1.column_name1 = T2.column_name2

Внутреннее соединение используется для получения перекрестного произведения между двумя таблицами, объединяющего все записи из обеих таблиц. Чтобы получить правильный результат, вы можете использовать equi-join или одно естественное соединение (имена столбцов между таблицами должны быть одинаковыми)

Использование equi-join (явный и неявный)

select *
  from table T1 INNER JOIN table2 T2
  on T1.column_name = T2.column_name

select *
  from table T1, table2 T2
  where T1.column_name = T2.column_name

Или Использование естественного соединения

select *
  from table T1 NATURAL JOIN table2 T2

НТН

Ответ 4

Проще говоря: равное соединение - это возможный тип внутренних соединений

Для более глубокого объяснения:

Внутреннее соединение - это соединение, которое возвращает только строки из соединенных таблиц, в которых выполняется определенное условие. Это условие может иметь равенство, что означает, что у нас будет равное объединение; если условие не является равенством - которое может быть неравенством, большим, меньшим, чем между и т.д. - у нас есть неравное соединение, которое называется более точно тета-соединением.

Если мы не хотим, чтобы такие условия обязательно выполнялись, у нас могут быть внешние соединения (все строки из всех таблиц возвращены), левое соединение (все строки из левой таблицы возвращены, только для правой таблицы), правое соединение (все строки справа таблица вернулась, только для левой таблицы.

Ответ 5

Ответ "Нет", вот что такое и просто для читателей.

Внутреннее соединение может иметь равенство (=) и другие операторы (например, <, > , < > ) в условии соединения.

Equi join имеет только условие равенства (=) в условии объединения.

Equi join может быть внутренним соединением, Left Outer join, Right Outer join

Ответ 6

Если вам нужно разобраться в различии, я думаю, что это так. Я протестировал его с помощью DB2. В "equi join". Вы должны выбрать столбец сравнения соединяемой таблицы, во внутреннем соединении это не обязательно, вы это делаете. Пример: -

Select k.id,k.name FROM customer k
inner join  dealer on(
k.id =dealer.id
)

здесь приведенные строки состоят только из двух столбцов строк

id    name

Но я думаю, что в equi join вам нужно также выбрать столбцы другой таблицы

Select k.id,k.name,d.id FROM customer k,dealer d
where
k.id =d.id

и это приведет к строкам с тремя столбцами, вы не можете иметь здесь ненужный сравниваемый столбец дилера (даже если вы этого не хотите), строки будут выглядеть как

 id(from customer) name(from Customer) id(from dealer)

Возможно, это неверно для вашего вопроса. Но это может быть одним из основных различий.

Ответ 7

Ответ: ДА, но как результат. Итак, вот пример.

Рассмотрим три таблицы:

заказы (ord_no, purchase_amt, ord_date, customer_id, salesman_id)

клиент (customer_id, cust_name, city, grade, salesman_id)

продавец (salesman_id, имя, город, комиссия)

Теперь, если у меня есть такой запрос:

Найдите информацию о заказе.

Использование INNER JOIN:

SELECT * FROM orders a INNER JOIN customer b ON a.customer_id=b.customer_id 
INNER JOIN salesman c ON a.salesman_id=c.salesman_id;

Использование EQUI JOIN:

SELECT * FROM orders a, customer b,salesman c where 
a.customer_id=b.customer_id and a.salesman_id=c.salesman_id;

Выполните оба запроса. Вы получите тот же результат.

Приступая к вашему вопросу Нет никакой разницы в выводе equijoin и внутреннего соединения. Но может быть разница во внутренних исполнениях обоих типов.

Ответ 8

Основное заблуждение относительно различий в равных и внутренних соединениях заключается в разделении операторов сравнения и равенства на две разные группы. В действительности знак равенства ("=") принадлежит группе операторов сравнения.

Это делает отношения включающими, а не исключительными. Животные (THETA JOINS) могут быть дикими (NON EQUI JOIN) или одомашненными (EQUI JOIN), но кошки (INNER JOIN) могут быть любыми, это зависит только от конкретного случая.

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

THETA JOIN - это общее условное (условие = тета) соединение в SQL, которое допускает произвольные отношения сравнения.

THETA JOIN - это более широкий зонтик, который может быть далее разделен с помощью двух независимых видов классификаций: 1. ВНУТРЕННЕЕ СОЕДИНЕНИЕ И ВНЕШНЕЕ СОЕДИНЕНИЕ (ВЛЕВО, ВПРАВО, ПОЛНОЕ ВНЕШНЕЕ) 2. РАВНОЕ СОЕДИНЕНИЕ против НЕ УКАЗАННОЕ СОЕДИНЕНИЕ

EQUI JOIN против NON EQUI JOIN 1. Оба являются подмножествами общего THETA JOIN. 2. Оба могут принадлежать ВНУТРЕННИМ СОЕДИНЕНИЯМ и ко всем трем типам НАРУЖНЫХ СОЕДИНЕНИЙ (ВЛЕВО, ВПРАВО, ПОЛНОЕ НАРУЖНОЕ).

EQUI JOIN является частным случаем THETA (условного) JOIN, в котором в качестве условия соединения используется только оператор равенства.

Пока условие для сопоставления строк основано на равенстве двух значений, соединение может быть классифицировано как EQUI JOIN.

NON EQUI JOIN использует оператор сравнения (но не "=") в качестве условия соединения.

Пока условие для сопоставления строк основано на сравнении двух значений, соединение может быть классифицировано как NON EQUI JOIN.

INNER JOIN - это THETA JOIN, который может быть основан на равенстве для совпадения строк (случай EQUI JOIN) или на каком-либо другом сравнении (случай NON EQUI JOIN).