簡體   English   中英

MySQL 在 NOT IN 條件下插入和連接表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM