Выборка. По Left Join. Help me, please!

dogalev

Новичок
Есть две таблицы. Счета и Договора. Нужно выбрать Те условия из счетов, которых нет в Договоре.
В Oracle я бы сделал через минус. а как тут ?


select distinct Счет.ID
from Счет
left join
Договор
on Договор.ID=Счет.ID
where Договор.ID is not null
Договор.Type=Поставка
Cчет.Vid=1 <====правильно ли я вставляю это условие??? именно из первой таблицы..запрос зависает тут
 

fixxxer

К.О.
Партнер клуба
За названия таблиц на русском ты будешь гореть в аду.

По сабжу, left join + is null, либо not exists.
 

Gas

может по одной?
on Договор.ID=Счет.ID AND Cчет.Vid=1

а не в where для этого случая
 

dogalev

Новичок
русскими назвал для наглядности.

Должно быть так:


select distinct dog.ID
from Dogogvor dog
left join
SHET sch
on Dog.ID=Sch.ID and Sch.Vid=1
where Dogovor.IDr is not null

НЕ МОГУ ПОНЯТЬ, GAS, как бы условий если много различных по полям..как с первой таблицы так и со второй их куда сувать?
 

fixxxer

К.О.
Партнер клуба
А за транслит в аду полагается особо горячий котел. :)
 

Gas

может по одной?
dogalev
Условия из where должны быть полюбому true, иначе строка исключается. В случае left join'а, если тебе нужны записи из первой таблицы, а из второй необязательно, то условия для таблицы с left join нужно писать в ON, а не Where.

"where Dogovor.IDr is not null" думаю это не нужно, fixxxer немного не это имел ввиду.
 
Сверху