[英]MySQL insert and join table with NOT IN condition
我想從表中插入數據,並且我不希望在我的目標表中再次導入相同的日期數據。
例如 - 我在源表和目標表上都有日期作為列,我不想在我的目標表中使用相同的日期數據。 兩個表上的日期列相同,兩個表中的列數也相同。
我怎樣才能做到這一點?
最好的方法是使用NOT EXISTS
,如下所示:
INSERT INTO destination_table
select *
from source_table s
where not exists
(select 1 from destination_table d where d.date = s.date)
過濾那些日子並插入
INSERT INTO destination_table
select a.* from source a
where a.date not in ( select date from destination_table)
您可以按如下方式創建目標表:
CREATE TABLE Destination (
ID int NOT NULL,
Property1 PropertyType,
Property2 PropertyType,
etc.....
UniqueDate DATE,
UNIQUE (UniqueDate)
);
請記住將 PropertyX 和 PropertyType 替換為您自己的屬性和類型,以及重命名 UniqueDate
此代碼將在您的日期列上設置唯一約束。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.