Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.055 c
11-1152110257
oleg_l_k
2006-07-05 18:37
2007.03.25
Библиотека доступа к IB/FB/Yaffil на базе KOL


1-1169892943
delphi_
2007-01-27 13:15
2007.03.25
помогите с регулярным выражением (TRegExpr)


2-1172954302
dreamse
2007-03-03 23:38
2007.03.25
Системные сервисы


15-1172947756
Cyrax
2007-03-03 21:49
2007.03.25
Процесс подготовки цифровой версии печатной продукции


3-1167462346
vidiv
2006-12-30 10:05
2007.03.25
проблема TADOQuery + MSAccess + Union





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский