powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / or в on джойна
18 сообщений из 18, страница 1 из 1
or в on джойна
    #39885426
mnemolog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В каком стандарте sql была введена возможность указания условия соединения OR?
Например: t1 join t2 on (t1.id1 = t2.id1 or t1.id2 = t2.id2).
sql92?
...
Рейтинг: 0 / 0
or в on джойна
    #39885428
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mnemolog,

Подозреваю, что в том же, где вообще появились JOIN-ы.
В OR ничего такого нет, это просто один из логических операторов.
...
Рейтинг: 0 / 0
or в on джойна
    #39885585
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mnemolog
sql92?
Да
...
Рейтинг: 0 / 0
or в on джойна
    #39885841
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут темы сравнения нету. Куда это? В проектирование инфо систем? Или в Программинг?
...
Рейтинг: 0 / 0
or в on джойна
    #39885887
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Тут темы сравнения нету

Так добавить то не сложно.

А в какой СУБД этот синтаксис был поддержан раньше?
SQL Server, Oracle, IBM DB2
...
Рейтинг: 0 / 0
or в on джойна
    #39885942
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
А в какой СУБД этот синтаксис был поддержан раньше?
А есть хоть одна версия какой-либо SQL-СУБД, в которой есть JOIN, но нельзя использовать OR в условиях соединения?
...
Рейтинг: 0 / 0
or в on джойна
    #39886056
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft
msLex
А в какой СУБД этот синтаксис был поддержан раньше?
А есть хоть одна версия какой-либо SQL-СУБД, в которой есть JOIN, но нельзя использовать OR в условиях соединения?

Не знаю. Может какие embeded движки имеют ограничения.
...
Рейтинг: 0 / 0
or в on джойна
    #39886183
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLexМожет какие embeded движки имеют ограничения.

Угу, FwMas. Хотя постойте, там джоинов нет.

Разработчикам движков проще вписать в синтаксическую диаграмму "ON <boolean_expression>"
чем создавать в этом месте отдельную ветку выражения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
or в on джойна
    #39886320
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
msLexМожет какие embeded движки имеют ограничения.

Угу, FwMas. Хотя постойте, там джоинов нет.

Разработчикам движков проще вписать в синтаксическую диаграмму "ON <boolean_expression>"
чем создавать в этом месте отдельную ветку выражения.

Так то от "вписать в синтаксическую диаграмму" до "реализовать поддержку в оптимизаторе запросов" пропасть, кто и как эту пропасть преодолевает - вопрос.
...
Рейтинг: 0 / 0
or в on джойна
    #39886321
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
 t1 join t2 on (t1.id1 = t2.id1 or t1.id2 = t2.id2).



Можно ли это выражение описать через UNION ALL ?
...
Рейтинг: 0 / 0
or в on джойна
    #39886324
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Код: sql
1.
 t1 join t2 on (t1.id1 = t2.id1 or t1.id2 = t2.id2).




Можно ли это выражение описать через UNION ALL ?

Только в ограниченном числе случаев.


Например, для вот таких наборов данных ни UNION ALL ни UNION не вернут нужного варианта

t1
1,2


t2
1,2
1,2
...
Рейтинг: 0 / 0
or в on джойна
    #39886536
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UNION сработает при условии что из двух предикатов OR будет срабатывать только один.
Иначе получим дубликаты строк которые придется убирать через UNION ALL
или DISTINCT.
...
Рейтинг: 0 / 0
or в on джойна
    #39886567
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только наоборот: UNION ALL оставляет все строки, UNION - убирает дубли.
...
Рейтинг: 0 / 0
or в on джойна
    #39886572
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да точно.
...
Рейтинг: 0 / 0
or в on джойна
    #39886667
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
mayton
Код: sql
1.
 t1 join t2 on (t1.id1 = t2.id1 or t1.id2 = t2.id2).





Можно ли это выражение описать через UNION ALL ?

Только в ограниченном числе случаев.


Например, для вот таких наборов данных ни UNION ALL ни UNION не вернут нужного варианта

t1
1,2


t2
1,2
1,2


На самом деле, я не совсем прав.
Это условие можно представить в виде union all без "or", правда придется использовать "and" и "!="

Код: sql
1.
2.
3.
4.
5.
...on t1.id1 = t2.id1 and t1.id2 != t2.id2
union all
...on t1.id1 != t2.id1 and t1.id2 = t2.id2
union all
...on t1.id1 = t2.id1 and t1.id2 = t2.id2
...
Рейтинг: 0 / 0
or в on джойна
    #39887014
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLexА в какой СУБД этот синтаксис был поддержан раньше?
SQL Server, Oracle, IBM DB2
в InterBase, в 1994 году. полноценные стандартные inner и outer. Насколько я помню, на тот момент в Оракле и МС СКЛ были только звездочки и плюсики вместо left/right outer join.
...
Рейтинг: 0 / 0
or в on джойна
    #39887019
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
Насколько я помню, на тот момент в Оракле и МС СКЛ были только звездочки и плюсики вместо left/right outer join.

Жаль, что это изменилось.
...
Рейтинг: 0 / 0
or в on джойна
    #39887309
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mnemolog
Например: t1 join t2 on (t1.id1 = t2.id1 or t1.id2 = t2.id2)

Условие после on - это просто логическое условие.
У меня есть случай вида t1 left join t2 on (t1.id1 = t2.id1 and not exists(...)) - и работает на убогом старье почти 20-летней давности.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / or в on джойна
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]