Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sql join and insert if not exists

I have a table called Itemlookup and I want to insert values from two tables. However, I only want to insert it if Itemlookup doesn't have these values. I can insert into the table but if I execute it again, it inserts again. I want to avoid do that.

I have tried using the If not exists, but am not getting any luck. Any help is most appreciated.

Insert into Itemlookup (ItemNumber, Cases, Shift, [TimeStamp])

Select a.ItemNumber, b.CaseCount, a.TimeStamp 
from ItemsProduced a innerjoin     
       MasterItemList b on a.ItemNumber=b.ItemNumber
like image 993
ENGR024 Avatar asked Mar 04 '26 16:03

ENGR024


1 Answers

Try a left join

Insert into Itemlookup (ItemNumber, Cases, [TimeStamp])
Select a.ItemNumber, b.CaseCount, a.TimeStamp 
from ItemsProduced a 
inner join MasterItemList b on a.ItemNumber = b.ItemNumber
left join Itemlookup i on i.ItemNumber = a.ItemNumber
                      and i.Cases= b.CaseCount
                      and i.TimeStamp = a.TimeStamp 
where i.ItemNumber is null

BTW your insert contains 4 columns and your select only 3. I removed Shift for consistency.

like image 185
juergen d Avatar answered Mar 06 '26 20:03

juergen d