Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.25;
Скачать: CL | DM;

Вниз

Соединить таблицу с собой   Найти похожие ветки 

 
Vlad Oshin ©   (2006-12-28 17:46) [0]

пусть есть

mytable
---------
cl1  |  cl2
---------
a    |  12
a    |  22
b    |  32


надо получить

a    12   22
b    32   null


пишу

select
 a.cl1, a.cl2, b.cl2
from  
 mytable a
inner join
mytable b
ON
a.cl1=b.cl1
where
a.cl2<b.cl2


получаю

a    12   22

, что и следовало ожидать

а как сделать, чтоб было  

a   12   22
b   32  null

?

можно, конечно, добить таблицу еще одним значением b null для симметрии :), но может подскажете как надо? Если ответ очевиден - не пинайтесь, хотя бы намекните


 
stone ©   (2006-12-28 18:08) [1]

Изврат, кончно, но можно так

select a.cl1, a.cl2, b.cl2
from mytable  a
 inner join mytable  b ON a.cl1=b.cl1 and a.cl2 < b.cl2
union all
select a.cl1, a.cl2, null from
(select cl1, count(cl2) as cnt from mytable  
 group by cl1 having count(cl2) = 1) b
inner join mytable   a on a.cl1 = b.cl1


 
Vlad Oshin ©   (2006-12-28 18:35) [2]

спасибо. мне хоть как лишь бы до пятницы
Пошел переводить на реальные таблы


 
Vlad Oshin ©   (2006-12-28 19:11) [3]


> inner join mytable  b ON a.cl1=b.cl1 and a.cl2 < b.cl2

вот из-за чего
не знал..
ни в одном примере не попалось что можно так писать, Множественное условие, т.е.
Обычно напишут inner join бла-бла ON a.qwe=s.qwe
и все, давай следующий пример, такой же

спасибо еще раз, все получилось :)


 
Ega23 ©   (2006-12-28 19:18) [4]


> вот из-за чего
> не знал..
> ни в одном примере не попалось что можно так писать, Множественное
> условие, т.е.
> Обычно напишут inner join бла-бла ON a.qwe=s.qwe
> и все, давай следующий пример, такой же
>


во from выборка готовится, в where полученные данные фильтруются.


 
Desdechado ©   (2006-12-28 19:19) [5]

outer join


 
ЮЮ ©   (2006-12-29 04:06) [6]


> outer join


тогда уж LEFT JOIN


 
Megabyte ©   (2006-12-29 10:10) [7]

Тогда уж Left Outer Join :)))


 
ЮЮ ©   (2006-12-29 10:34) [8]


> Тогда уж Left Outer Join :)))


OUTER при LEFT можно опускать, ибо LEFT - однj из OUTER соединений.
а вот LEFT не опустишь.



Страницы: 1 вся ветка

Текущий архив: 2007.03.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.061 c
1-1169887508
Tehnik
2007-01-27 11:45
2007.03.25
TCheckListBox


15-1172460416
Slider007
2007-02-26 06:26
2007.03.25
С днем рождения ! 25 февраля


15-1172901760
SerJaNT
2007-03-03 09:02
2007.03.25
Подскажите


15-1172580322
palva
2007-02-27 15:45
2007.03.25
Что читают в метро


6-1160771242
Русло
2006-10-14 00:27
2007.03.25
Как разделять почтовые сообщения на прочтенные и еще нет