Можно ли написать запрос соединения без ON
заявление? и как эти объединения отличаются от LEFT JOIN, RIGHT JOIN
работ.Как использовать mysql JOIN без условия ON?
ответ
MySQL documentation охватывает эту тему.
См. Краткое описание. При использовании 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 не подходит для такого уровня обсуждения.
Смотрите некоторые примеры в http://www.sitepoint.com/understanding-sql-joins-mysql-database/
Вы можете использовать «USING» вместо «ON», как в запросе
SELECT * FROM table1 LEFT JOIN table2 USING (id);
Для дополнительного пояснения столбец соединения в обеих таблицах должен быть идентично назван для ИСПОЛЬЗОВАНИЯ для работы – rmirabelle
Вы также можете исследовать использование UNION, который сочетает в себе несколько таблиц для одного выхода: SQL - Combine two tables for one output
Как это относится к вопросу OP? –
- 1. MySQL: Условия для JOIN ON SELECT UNION
- 2. MySQL/Drupal: условия в JOIN ON заявлении
- 3. Как использовать if clauses в состоянии ON для MySQL-Join?
- 4. MySQL JOIN с IF условия
- 5. mysql delete on join?
- 6. Как установить условия на загрузку без Join?
- 7. mySql on nodejs JOIN
- 8. join on mysql output
- 9. MySQL: Различные условия для каждого INNER JOIN
- 10. SQL Использование join, но без условия Условие
- 11. MySQL join - выберите таблицу на основе условия
- 12. mySQL JOIN ON NOT()? Возможно
- 13. Mysql Рейтинг on on Left JOIN
- 14. mySQL update query on join
- 15. MySQL Math on "join" function
- 16. MySQL JOIN ON С ИЛИ
- 17. MySql. Как использовать Self Join
- 18. Какой тип JOIN использовать? mysql
- 19. SQL: Shuold Я использую условия INNER JOIN как условия WHERE?
- 20. LEFT JOIN условия выбора
- 21. MySQL дополнительное условие после того, как INNER JOIN, ON
- 22. MySQL Return NULL on Failed JOIN
- 23. Дополнительные условия в JOIN
- 24. MySql LEFT JOIN ON (первые 6 букв)
- 25. Как использовать JOIN в UPDATE mysql query
- 26. SQL LEFT JOIN Условия
- 27. Многочисленные условия WHERE mysql
- 28. Использовать массив как таблицу в MySql JOIN
- 29. условия в LEFT JOIN (OUTER JOIN) против INNER JOIN
- 30. mySQL - Как использовать инструкцию COUNT() в JOIN
Как предложение 'ON' сообщает серверу, как связаны эти таблицы, нет. Если ваши разные типы соединений дают одинаковый результат, вы как-то делаете это неправильно, и добавление некоторого кода может помочь нам определить вашу проблему. В то же время перейдите к блогу Джеффа Атвуда (http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html) за 2-минутный ввод в различные типы соединений. – fvu