Обсуждение:Join (SQL)

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Предложение[править код]

Предлагаю добавить в статью аналогичные диаграммы: http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html

Полагаю, что достаточно ссылки. Визуализация - это конечно хорошо, но, как это и объяснено в указанном блоге, необходимы специальные предосторожности и определённая интерпретация диаграмм. Поэтому для мнемоники это не совсем подходит: эти мелкие детали могут забыться. РоманСузи 16:09, 14 сентября 2012 (UTC)[ответить]

Обязательность конструкции[править код]

Поскольку SELECT с JOIN всегда можно заменить на SELECT с WHERE, в некоторых БД этот оператор не реализован, не правда ли? Ignatus 07:35, 7 сентября 2011 (UTC)[ответить]

В некоторых СУБД (а не БД) оператор JOIN и правда не реализован, но вовсе не поэтому. Любая алгебра избыточна, например, в арифметике можно выразить вычитание через умножение и сложение, деление — через умножение и обращение и т.д. Однако это не значит, что одни операции более базисные, чем другие, можно выделить множество вариантов базисов. В нашем случае, да, соединение можно выразить через произведение и выборку, однако верно и другое: произведение можно выразить через соединение, и выборку можно выразить через соединение. Евгений Мирошниченко 08:30, 7 сентября 2011 (UTC)[ответить]

Дополнение[править код]

Не рассмотрены варианты полей со значениями NULL для операций OUTER JOIN и CROSS JOIN 86.62.100.65 04:42, 20 июля 2012 (UTC)steiiar@mail.ru[ответить]

Добавьте плз картинку, автор даёт согласие Картинка http://i28.fastpic.ru/big/2011/1213/20/f535d26e0d6fd2e4bdcee5992f2f2020.jpg Согласие автора: http://forum.vingrad.ru/index.php?showtopic=343660&view=findpost&p=2517987 77.181.59.179 16:00, 14 сентября 2012 (UTC)[ответить]

  • Эта картинка неясно что показывает. По ней создаётся иллюзия, что речь идёт о пересечениях множеств, как в диаграммах Эйлера-Венна. Кажется, будто количество элементов при соединении меньше либо равно сумме количеств элементов соединяемых отношений. Эти рисунки сами надо тщательно объяснять и интерпретировать. Тогда к чему они нужны, если они лишь привносят дополнительную сложность? Уж лучше более тщательно объяснить на примерах саму операцию соединения. ◄ Евгений Мирошниченко ► 03:05, 15 сентября 2012 (UTC)[ответить]

Мне оно очень помогло, я не мог понять как именно работают эти механизмы, а тут наглядно показано, правда, конечно кидать картинку одним целым не целесообразно, а вот порезать на части, чтоб к каждому свою прикрепить, очень даже в тему 2A02:908:F018:1700:225:90FF:FE4B:81BC 10:55, 15 ноября 2012 (UTC)[ответить]

О размачивании сухого[править код]

Преамбула слишком "суха". Всё-таки статья об SQL, а не о реляционной алгебре. Если не нравится моё добавление, напишите, пожалуйста своё или объясните, в чём именно безграмотность, кроме, возможно, не очень удачного термина «отношение» в этом контексте. Спасибо. РоманСузи 07:47, 19 сентября 2012 (UTC)[ответить]

Поскольку это цитата, то моё "безграмотность" относится не к вам, разумеется, а к источнику. Хотя в источнике написано relationship, что, строго говоря, в контексте баз данных нельзя переводить как "отношение", а только как "связь" или "взаимосвязь". Но как бы то ни было, связей между строками может и не быть. Например, перекрёстное соединение заведомо не предполагает никаких "связей". Поэтому фраза из источника неверна.
Поскольку я не понимаю ни фразы «Преамбула слишком "суха"», ни её связи с фразой «Всё-таки статья об SQL, а не о реляционной алгебре», то прокомментировать эту часть я не в состоянии. ◄ Евгений Мирошниченко ► 09:42, 19 сентября 2012 (UTC)[ответить]
Хорошо. Я попробую найти источник получше. О сухости: описание Join (SQL), на мой взгляд, не должно только отсылать куда-то, где содержатся существенные сведения. Поэтому я предлагаю дополнить определение в терминах самого SQL, тех самых таблиц, связей между ними, ключей и т.п. Без этого определение выглядит слишком теоретическим, оторванным от контекста. РоманСузи 10:27, 19 сентября 2012 (UTC)[ответить]
Я не против, разумеется. Надо над формулировкой поработать. Полагаю, вы, как писатель, самостоятельно гораздо лучше придумаете вариант, чем эти переводные фразы с иноземных серверов. ◄ Евгений Мирошниченко ► 11:16, 19 сентября 2012 (UTC)[ответить]
Вот это, гл. 3, стр. 90 по вашему — стоящий источник (нужная глава есть в PDF), или опять к консенсусу не придём? РоманСузи 20:11, 19 сентября 2012 (UTC)[ответить]
Кстати, сейчас заметил, в удалённом тексте вроде не об отношениях между строками речь, а о столбцах. РоманСузи 20:16, 19 сентября 2012 (UTC)[ответить]
Знаю эту книгу. К сожалению, фраза из неё «Соединения полностью предназначены для обеспечения выборки данных из нескольких таблиц и включения этих данных в один результирующий набор» плоха тем, что не отличает соединение от объединения, для которого эта фраза тоже отлично подходит. Попробую что-то написать на основе этой фразы. ◄ Евгений Мирошниченко ► 01:51, 20 сентября 2012 (UTC)[ответить]
По-моему, получилось хорошо. РоманСузи 03:37, 20 сентября 2012 (UTC)[ответить]