SQL JOIN
26 февраля 2011
Очень удивился, когда не нашёл внятной схемы синтаксиса и работы JOIN
в SQL. Нарисовал свою:
- MySQL и SQLite не поддерживают
FULL JOIN
. Эмулируется черезUNION
. - В MySQL
CROSS JOIN
эквивалентенINNER JOIN
. Можно использовать как один, так и другой. В стандарте SQL это не так:INNER JOIN
используется сON
,CROSS JOIN
— без. - SQLite не поддерживает
RIGHT OUTER JOIN
.
PDF версии:
Комментарии RSS по email OK
А чем вы ее такую красивую рисовали? Если не секрет
Я на sql-ex.ru нашел внятную доку. Что мне понравилось, что:
Эквивалентно:
Мне в свое время понравилось это визуально-синтаксическое представление JOIN'ов - http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html.
Kirill Vlasov, MS офисом :)
Andrei Frolikov, а вот мне не очень понравилось: не ясен синтаксис, не все понимают операции над множествами.
Довольно грамотный способ описания синтаксиса, но рисунки пересекающихся кружочков пригодились бы для лучшего понимания результата - кружочки нагляднее, чем записи вида
L=R || R=NULL
.А я соглашусь с Андреем и Дмитрием, кружочки нагляднее. С другой стороны если ты разжуешь для тугих, как я, - было бы офигенно =)
А вот я не понял. Всегда работал по этой схеме: http://www.codeproject.com/KB/database/Visual_SQL_Joins/Visual_SQL_JOINS_V2.png. ЗЫ. Тег для вставки сылки неадекватен.
при всем уважении... но кружочки лучше
Хорошая работа - диаграмма! Большое спасибо.
Автор имеет альтернативное видение кружочков и это очень хорошо, по мне так, очень наглядно