Гость
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / использование USING для соединения таблиц по полю / 12 сообщений из 12, страница 1 из 1
04.07.2005, 15:41
    #33148270
Igor7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование USING для соединения таблиц по полю
в DB2 не работает. ? почему - или де собака ?
...
Рейтинг: 0 / 0
05.07.2005, 11:09
    #33149512
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование USING для соединения таблиц по полю
нчгнпнл
...
Рейтинг: 0 / 0
05.07.2005, 15:42
    #33150416
Igor7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование USING для соединения таблиц по полю
пример

2 таблицы. у обоих есть поле XXX_ID - соединяем их по этому полю:

select * from T1 join T2 using (XXX_ID);

Result

авторSQL0104N An unexpected token "END-OF-STATEMENT" was found following "CQRSYS.T2 using (XXX_ID)". Expected tokens may include: "JOIN <joined_table>". SQLSTATE=42601
...
Рейтинг: 0 / 0
05.07.2005, 15:48
    #33150436
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование USING для соединения таблиц по полю
Используй join, только синтаксис в доке посмотри....
...from t1 full outer join t2 on t1.id=t2.id..... типа такого что-то....
...
Рейтинг: 0 / 0
05.07.2005, 17:39
    #33150845
Igor7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование USING для соединения таблиц по полю
автор
Используй join, только синтаксис в доке посмотри....
...from t1 full outer join t2 on t1.id=t2.id..... типа такого что-то....


on работает корректно - вопрос не о тока как соеденить таблицы, а о том, как это сделать используя using - в доках написано как в пред. посте - реальность такого ПОЧЕМУ-ТО не позволяет.

(соединяя по on ... дает сильно много инструкци для соединения большого колл. таблиц с одой колонкой общей)
...
Рейтинг: 0 / 0
05.07.2005, 20:29
    #33151136
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование USING для соединения таблиц по полю
А почему "реальность" должна это позволять? Вообще, какой реальный SQL-сервер такое поддерживает? (вряд ли больше одного - какая-нибудь жуткая экзотика).

Я слышал о конструкции

select * from T1 NATURAL join T2; -- соединение по одноимённым полям

но про USING даже не подозревал.

Реальность в данном случае - это http://publib.boulder.ibm.com/infocenter/db2help/topic/com.ibm.db2.udb.doc/admin/r0000875.htm

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
                      .-INNER-----.
>>-+-table-reference--+-----------+--JOIN--table-reference--ON--join-condition-+-><
   |                  '-| outer |-'                                            |
   '-(--joined-table--)--------------------------------------------------------'

outer:

              .-OUTER-.
|--+-LEFT--+--+-------+-----------------------------------------|
   +-RIGHT-+
   '-FULL--'

Что касается экономии, с DB2 можно сэкономить на AND'ах, сравнивая "векторами".

select ... from t1 join t2 on (t1.f1,t1.f2,t1.f3)=(t2.f1,t2.f2,t2.f3)

кстати, работают и такие конструкции, как

SET (v1,v2,v3)=(SELECT f1,f2,f3...
...
Рейтинг: 0 / 0
05.07.2005, 23:09
    #33151248
Astron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование USING для соединения таблиц по полю
Victor MetelitsaВообще, какой реальный SQL-сервер такое поддерживает? (вряд ли больше одного - какая-нибудь жуткая экзотика).


Я знаю про 2 - MySQL и Oracle
Если майскул еще туда-сюда (хотя на этой самоделке 70% веб серверов живут), то уж Oracle экзотикой обозвать - круто :-)
...
Рейтинг: 0 / 0
05.07.2005, 23:43
    #33151265
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование USING для соединения таблиц по полю
Ну... MySQL я за SQL-сервер не держу, пусть он хоть 99.999% вебсерверов будет обслуживать...

Да, вижу - в Oracle 9.2 есть этот USING. Значит, не экзотика. Хотя... у нас все три оракулиные системы на Oracle 8i, и разработчики принципиально не собираются переходить на более новые версии. t1.f1=t2.f1(+) and ... and t1.fN=t2.fN(+) за милую душу ;-)
...
Рейтинг: 0 / 0
06.07.2005, 12:23
    #33151901
Astron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование USING для соединения таблиц по полю
Ну да, про майскул +1, хотя не у Oracle же они это слизали? Не успели бы, по ремени выхода версий.
При том, что DB2 для майскуля является одним из основных объектов для подражания. Процедурный язык, по крайней мере, слизали практически до запятой.
До USING даже M$ SQL не додумались, значит слизано это еще с какого-то сервера, так что есть еще 1 наверняка :-)
...
Рейтинг: 0 / 0
06.07.2005, 16:34
    #33152716
Igor7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование USING для соединения таблиц по полю
всем спасибо,

так и подозревал - потому как в Oracle 9.0 уже работает, но на данный момент приходится иметь дело с DB2 ;-(

так же спасибо за альтернативы
...
Рейтинг: 0 / 0
06.07.2005, 16:35
    #33152725
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование USING для соединения таблиц по полю
не ;-(, а ;-)

;-)
...
Рейтинг: 0 / 0
06.07.2005, 16:39
    #33152744
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование USING для соединения таблиц по полю
Читайте "кулинарную книжку" - http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM
!!!
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / использование USING для соединения таблиц по полю / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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