SQL连接并插入(如果不存在)

ENG*_*024 0 sql sql-server sql-server-2008

我有一个名为Itemlookup的表,我想从两个表中插入值。但是,我只想在Itemlookup没有这些值的情况下插入它。我可以插入表中,但是如果再次执行它,它将再次插入。我想避免这样做。

我尝试使用“如果不存在”,但是没有任何运气。非常感谢您的帮助。

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
Run Code Online (Sandbox Code Playgroud)

jue*_*n d 5

尝试一个 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
Run Code Online (Sandbox Code Playgroud)

顺便说一句,您的插入内容包含4列,而您选择的只有3列Shift。出于一致性考虑,我们将其删除 。