Как использовать MySQL присоединиться, не в состоянии?
можно ли написать запрос на соединение без ON
заявление? и как эти соединения отличаются LEFT JOIN, RIGHT JOIN
строительство.
3 ответа:
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
The
on
предложение требуется для правого или левого внешнего соединения, поэтому обсуждение не имеет отношения к их.Если вам нужно понять различные типы соединений, то вам нужно сделать некоторые исследования на реляционных базах данных. Stackoverflow не является подходящим местом для такого уровня обсуждения.
Смотрите пример в http://www.sitepoint.com/understanding-sql-joins-mysql-database/
вы можете использовать 'USING' вместо 'ON', как в запросе
SELECT * FROM table1 LEFT JOIN table2 USING (id);
вы также можете изучить использование UNION, который объединяет несколько таблиц для одного вывода:SQL-объединить две таблицы для одного вывода