Главная страница
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.029 c
1-1169986586
Kolan
2007-01-28 15:16
2007.03.25
Взаимодействие программы и плагина.


4-1163149202
Natalex
2006-11-10 12:00
2007.03.25
Запуск компоненты TService


9-1145910748
Sinistral
2006-04-25 00:32
2007.03.25
Работа с TCanvas


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


8-1152533499
Ильдар
2006-07-10 16:11
2007.03.25
Плей лист и время