Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Какой Join можно использовать?  [new]
sraider
Member

Откуда:
Сообщений: 325
Нужно сделать Left Join, но условия нет. Каким join-ом это записать? Left Join требует условие.

То есть суть такая:
select * from A
left join B on 1=1
22 авг 12, 13:40    [13048976]     Ответить | Цитировать Сообщить модератору
 Re: Какой Join можно использовать?  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3041
заменить "запятой" и без всяких условий
select * from A, B


Вы точно уверены что Вам иммено это нужно?
22 авг 12, 13:42    [13048986]     Ответить | Цитировать Сообщить модератору
 Re: Какой Join можно использовать?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37254
outer apply
22 авг 12, 13:42    [13048993]     Ответить | Цитировать Сообщить модератору
 Re: Какой Join можно использовать?  [new]
SHok_by
Member

Откуда: Minsk
Сообщений: 51
cross join
22 авг 12, 13:51    [13049073]     Ответить | Цитировать Сообщить модератору
 Re: Какой Join можно использовать?  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3716
SHok_by
cross join
22 авг 12, 13:58    [13049136]     Ответить | Цитировать Сообщить модератору
 Re: Какой Join можно использовать?  [new]
sraider
Member

Откуда:
Сообщений: 325
запятая и cross join точно не то. вот пример:

select *
from (select top 2 name from sys.objects) x
left join (select top 0 name from sys.objects) y on 1=1
выдает 2 записи, как мне нужно


select *
from (select top 2 name from sys.objects) x
cross join (select top 0 name from sys.objects) y

select *
from (select top 2 name from sys.objects) x,
(select top 0 name from sys.objects) y
выдают 0 записей
23 авг 12, 13:22    [13054985]     Ответить | Цитировать Сообщить модератору
 Re: Какой Join можно использовать?  [new]
sraider
Member

Откуда:
Сообщений: 325
Гавриленко Сергей Алексеевич
outer apply

похоже то, что нужно
23 авг 12, 13:24    [13055001]     Ответить | Цитировать Сообщить модератору
 Re: Какой Join можно использовать?  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3716
sraider
Гавриленко Сергей Алексеевич
outer apply

похоже то, что нужно


тогда Full join
23 авг 12, 14:22    [13055560]     Ответить | Цитировать Сообщить модератору
 Re: Какой Join можно использовать?  [new]
sraider
Member

Откуда:
Сообщений: 325
Ivan Durak,

для full join нужно условие... как и для left join
23 авг 12, 14:40    [13055665]     Ответить | Цитировать Сообщить модератору
 Re: Какой Join можно использовать?  [new]
офигеть
Guest
sraider,

ну и для outer apply надо условие,
без условия он превратится в cross join,
а кто-то говорил, что его это не устраивает.

надо-то что, чтоб из первой таблицы выбралось все,
а из второй только названия столбцов подцепить, а сами столбцы NULL-ами заполнить?
23 авг 12, 15:05    [13055788]     Ответить | Цитировать Сообщить модератору
 Re: Какой Join можно использовать?  [new]
sraider
Member

Откуда:
Сообщений: 325
офигеть,

select *
from (select top 2 name from sys.objects) x
outer apply (select top 0 name from sys.objects) y

outer apply не требует условий. выдает тот же результат, что и left join on 1=1.
то есть то, что мне нужно.
а нужно чтобы вторая таблица подцеплялась к первой, но если во второй ничего нет - то подцеплялись NULLи, а не пустой результат выходил. вобщем как работает left join.

cross join же выдает пустой результат, когда во второй таблице ничего нет
24 авг 12, 03:11    [13058110]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить