Какова цель объединений, если мы можем собрать данные из нескольких таблиц черезЦель присоединяется структурированного языка запросов
SELECT ,table1.a , table2.b , FROM table1,table2 ...
Какова цель объединений, если мы можем собрать данные из нескольких таблиц черезЦель присоединяется структурированного языка запросов
SELECT ,table1.a , table2.b , FROM table1,table2 ...
A JOIN позволяет вернуть все или выбранные данные из нескольких таблиц в одну временную таблицу , Использование одиночных команд SELECT в таблице оставило бы вас с несколькими наборами данных, а не с одним источником.
Синтаксис, который вы показали, фактически является объединением. Он называется неявным соединением. Синтаксис join
называется Явные, и имеет тот же эффект, с несколькими преимуществами:
on
) от логических условий.лучше ответьте там Mureinik +1 –
Соединения полезны для объединения данных из разных таблиц на основе их отношений с базой данных.
Попробуйте перейти по этой ссылке, чтобы узнать больше об этой теме http://www.codeproject.com/Articles/435694/Understanding-Table-Joins-using-SQL
запятая еще до явного ПРИСОЕДИНЯЙСЯ синтаксиса. Это кросс-соединение двух таблиц: все возможные комбинации строк из каждого. ГДЕ содержит только строки, которые соответствуют его условию. Учитывая запятую и ГДЕ и вложенные SELECTS, альтернативная орфография CROSS JOIN и JOIN в другом условии в ON не нужна.
Однако ВЗАИМОДЕЙСТВУЮЩИЕ ПРИСОЕДИНИТЕСЬ В результате выполнения условия приводят к тому, что строки из запятой плюс WHERE-подобная рестилирование соответствуют строкам, удовлетворяющим условию плюс непревзойденные строки из левой таблицы (LEFT JOIN), правой таблицы (RIGHT JOIN) или оба (FULL JOIN) расширены с помощью строки NULL для столбцов из другой таблицы. Для этого требуется указать условие соответствия (определение непревзойденных строк, в которые NULL добавляются к перекрестному соединению, которое запятая дает) отдельно от более позднего ограничения через WHERE.
Но до тех пор, пока условие ВКЛЮЧЕНО для ВЕРХНИХ ОБЪЕДИНЕНИЙ, можно также разрешить его для внутренних соединений. Он дает тот же результат, что и внешнее соединение ON, условие возвращает меньше любых несогласованных строк. То же самое, что и перекрестное присоединение (например, ГДЕ), ограничивающее условие. So (INNER) JOIN - это запятая с ее собственным условием от ON, а CROSS JOIN - запятая без ON. (CROSS JOIN подобен (ВНУТРЕННИЙ) РЕГИСТРИРУЙТЕСЬ ON 1 = 1.) (Также запятая имеет более низкий приоритет, то явно не-запятая присоединяется.)
TL; DR Разделенными является низким старшинство РЕГИСТРИРУЙТЕСЬ; мы не необходимо явный INNER JOIN или ON; ВНУТРЕННИЕ СОБЫТИЯ нуждаются в отличии от ГДЕ; мы могли бы также добавить явный внутренний синтаксис JOIN ON.
Это разные синтаксисы для одной и той же вещи, см. Https://stackoverflow.com/questions/894490/sql-left-join-vs-multiple-tables-on-from-line – augurar