|
Написание SELECT
|
|||
---|---|---|---|
#18+
ЕСТЬ ТРИ ТАБЛИЦЫ t1: id code descr i1 1 d1 i2 2 d2 i3 3 d3 t2: id pole1 pole2 ii1 NULL 1500 ii2 i2 3000 ii3 i1 2000 ii4 i1 2000 ii5 i3 2000 t3: idd docdef def descr ii1 410 def1 ds1 ii2 410 def2 ii3 410 def3 .. ii5 410 def4 ip1 430 def5 ip3 430 def6 ds6 Таблица t1 с t2 связана по t1.id-t2.pole1 Таблица t2 с t3 связана по t3.idd-t2.id выдать результат нужно в виде t2.id,t2.pole2,t3.def,t3.ds6,t1.descr в выборку должны попасть записи как с NULL значением t2.pole1 так и не нулевые Заранее спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2001, 10:39 |
|
Написание SELECT
|
|||
---|---|---|---|
#18+
У меня так получилось create table #t1([id] char(5), code int, descr char(5)) insert into #t1 values('i1', 1, 'd1') insert into #t1 values('i2', 2, 'd2') insert into #t1 values('i3', 3, 'd3') create table #t2([id] char(5), pole1 char(5), pole2 int) insert into #t2 values('ii1', NULL, 1500) insert into #t2 values('ii2', 'i2', 3000) insert into #t2 values('ii3', 'i1', 2000) insert into #t2 values('ii4', 'i1', 2000) insert into #t2 values('ii5', 'i3', 2000) create table #t3(idd char(5), docdef int, def char(5), descr char(5)) insert into #t3 values('ii1', 410, 'def1', 'ds1') insert into #t3 values('ii2', 410, 'def2', null) insert into #t3 values('ii3', 410, 'def3', '..') insert into #t3 values('ii5', 410, 'def4', null) insert into #t3 values('ip1', 430, 'def5', null) insert into #t3 values('ip3', 430, 'def6', 'ds6') SELECT #t2.[id], #t2.pole2,#t3.def,#t3.descr,#t1.descr FROM #t2 LEFT OUTER JOIN #t1 ON #t1.[id] = #t2.pole1 INNER JOIN #t3 ON #t3.idd = #t2.id go drop table #t1 drop table #t2 drop table #t3 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2001, 11:02 |
|
Написание SELECT
|
|||
---|---|---|---|
#18+
Ради любопытства: а такой запрос устроит? SELECT t2.id, t2.pole2,t3.def,t3.descr,t1.descr FROM #t2 t2, #t1 t1, #t3 t3 where t1.id=t2.pole1 and t3.idd=t2.id union SELECT t2.id, t2.pole2,t3.def,t3.descr,null FROM #t2 t2, #t3 t3 where t2.pole1 is null and t3.idd=t2.id А вообще задача поставлена несколько некорректно. Есть некое противоречие: с одной стороны должна быть связь по t1.id-t2.pole1, а с другой стороны должна попасть запись t2.pole1 со значением null, хотя соответствующей записи в таблице t1 нет ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2001, 11:38 |
|
|
start [/forum/topic.php?fid=46&msg=32003689&tid=1827109]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 262ms |
total: | 395ms |
0 / 0 |