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

Могу ли я использовать mysql JOIN без условия ON?

Я не мог научиться хорошо использовать JOIN. Я всегда использовал код на стороне сервера для таких целей. Можно ли написать запрос соединения без ON? В основном, как эти объединения отличаются LEFT JOIN, RIGHT JOIN они делают то же самое на моих примерах.

4b9b3361

Ответ 1

MySQL описывает эту тему.

Вот краткий обзор. При использовании join или inner join условие on не является обязательным. Это отличается от стандарта ANSI и отличается от любой другой базы данных. Эффект равен cross join. Аналогично, вы можете использовать предложение on с cross join, которое также отличается от стандартного SQL.

Перекрестное объединение создает декартово произведение - то есть все возможные комбинации из 1 строки из первой таблицы и 1 строки из второй. Перекрестное соединение для таблицы с тремя строками ( "a", "b" и "c" ) и таблица с четырьмя строками (например, 1, 2, 3, 4) имели бы 12 строк.

На практике, если вы хотите выполнить перекрестное соединение, используйте cross join:

from A cross join B

намного лучше, чем:

from A, B

и

from A join B -- with no on clause

Предложение on требуется для правого или левого внешнего соединения, поэтому обсуждение не имеет для них значения.

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