![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
GQU |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 13.2.2011 Репутация: нет Всего: нет |
||||
|
||||
Zloxa |
|
||||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 10 Всего: 161 |
Мы понимаем, но не знаем как понять за вас. В общем случае полное соединение это объединение результатов левого соединения и правого, не вошедшего в результат левого. full join можно переписать как то - так:
Не знаю, стало ли вам понятнее от моего объяснения ![]() На самом деле ничего военного, достаточно лишь просечь фишку.
Потому что C.ContactName, C.City для этой строки не определены. ЭТо как раз те строки, которые получаются в результате правого соединения. Если вам нужно вывести для каждой строки ключ соединения, исользуйте coalesce(C.City,E.City ) -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
||||
|
|||||
GQU |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 13.2.2011 Репутация: нет Всего: нет |
Не, мне не нужны никакие ключи, просто понял что не понимаю FULL JOIN, вот решил разобраться |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 10 Всего: 161 |
Не понимаю чего там не понятного. ![]() Да и понимать там нечего. Это правило, его не понимать надо а усвоить. У нас есть два набора данных А и Б, пересекающиеся по критериям соединения. Левое соединение это все записи из набора А + данные из таблицы Б, попадающие под критерии соединения Правое соединение это все записи из набора Б + данные из таблицы А, попадающие под критерии соединения Полное соединение это все записи из наборов А и Б, соединенные по критериям соединения Внутреннее соединение это только те записи аз наборов А и Б, которые попадают под критерии соединения. На картинке это выглядит как-то так: ![]() Это сообщение отредактировал(а) Zloxa - 11.3.2012, 12:03 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
SharedNoob |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 25.6.2007 Где: UA Репутация: 2 Всего: 5 |
В Employees нет записи с городом варшава.
|
|||
|
||||
animegirl |
|
|||
![]() Незнайка на Марсе ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 24.7.2011 Репутация: нет Всего: нет |
А вы не будите против, если мы эту картинку скопируем в википедию? Замечательное наглядное представление -------------------- Скажи миру - НЯ! |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 10 Всего: 161 |
Мы, конечно, против не будим. ![]() Если закоммитят, ссылью поделитесь пожалуйста, подивлюсь, ЧСВ потешу. в отличии от дизайнерского решения ![]() Это сообщение отредактировал(а) Zloxa - 14.9.2012, 11:59 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
animegirl |
|
|||
![]() Незнайка на Марсе ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 24.7.2011 Репутация: нет Всего: нет |
Zloxa,
Распечатала вашу картинку, повесила на стенку, хотела подписать и задумылась. Правое левое вроде понятно, внутринние примерно тоже, а вот "полное", это FULL или CROSS? И как быть с миксами? {INNER | {LEFT | RIGHT | FULL} OUTER | CROSS } JOIN -------------------- Скажи миру - НЯ! |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 10 Всего: 161 |
full.
cross join - декартово произведение двух наборов. как показать на картинке - не зна ![]() -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 454 |
Ну если говорить об SQL_стандарте - то CROSS JOIN используется тогда, когда отсутствует класс ON. И соответственно полностью эквивалентен запятой.
Однако бывают и "выпендроны". Например, в MySQL CROSS JOIN - это тот же INNER JOIN:
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Zloxa |
|
||||||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 10 Всего: 161 |
А оракл запрещает использовать джойн без ON
, и мешать old-style join (через запятон) и ansi join Не, таки мешать позволяет
Но чотакакто глючно или же я чего-то недознаю
Приведенная тобой РБНФ не допускает миксов ![]() Это сообщение отредактировал(а) Zloxa - 18.12.2012, 18:06 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
||||||
|
|||||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 454 |
Не вижу ничего глючного. Просто он требует точного соответствия записи порядку объединения. В первом случае dual t2 left join dual t3 воспринимается как единая псевдотаблица, полученная объединением таблиц, и она через запятую декартится на dual t1. Во втором случае подобной прямоты нет - и он поднимает скандал. ИМХО -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 10 Всего: 161 |
Я так не додумался интерпретировать ![]() -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "MS SQL" | |
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MS SQL Server | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |