Reputation: 559
Have query:
select a.id from selzde.elorder a
inner join selzde.elorder b on a.name = b.name
and a.workname = b.workname
and b.id = needId
where a.id not in (select id_elorder from selzde.drugselorder)
how make sql query not in
more simply use only join
?
Upvotes: 1
Views: 181
Reputation: 1547
One solution would be to use MINUS operator rather than not in as follows:
select a.id
from selzde.elorder a
inner join selzde.elorder b
on a.name = b.name
and a.workname = b.workname
and b.id = needId
MINUS
select id_elorder
from selzde.drugselorder
;
Hope this helps.
Regards, Roger
Upvotes: 1
Reputation: 204924
select a.id from selzde.elorder a
inner join selzde.elorder b on a.name = b.name
and a.workname = b.workname
and b.id = needId
left outer join selzde.drugselorder d on a.id = d.id_elorder
where d.id_elorder is null
Upvotes: 2
Reputation: 9219
Left join to drugselorder
, on id_elorder = a.id
, then choose the ones with no match (i.e. where drugselorder is null
)... I wouldn't say it was any more "simple", though.
Upvotes: 2