簡體   English   中英

MySQL選擇多個記錄

[英]Mysql select multiple records

我有3個表abc ab和c都通過一個id相關聯a.id = b.id = c.id

我的任務是從a.date大於6個月的ab和c中選擇所有行,並將它們插入新的數據庫中進行歸檔。

這是我到目前為止的內容:

insert into dbArchive.a select * from db.a where receivedDate < CURRENT_DATE() - INTERVAL 6 MONTH;`

這似乎從表a中選擇了6個月以上的所有條目,並將它們插入到存檔db表a中。

從表b和c中查找具有相同ID的所有行並將其插入到存檔db表b和c中的最佳和最有效的方法是什么?

我有超過100萬條超過6個月的記錄,因此我對性能問題感到厭倦。

像在此處完成的那樣插入dbArchive.a之后,可以運行以下命令插入dbArchive.b並以與dbArchive.b相同的方式dbArchive.c

INSERT INTO dbArchive.b(id, etc..) 
  SELECT db.b.id, etc.. 
  FROM dbArchive.a INNER JOIN db.b ON dbArchive.a.id = db.b.id;

所以在玩了一段時間之后,這似乎是最好的方法,我發現它實際上是可行的:

INSERT INTO archive.b SELECT * FROM db.b WHERE `id` IN( SELECT `id` FROM archive.a )

我不確定這是否是最有效的方法,但是可以完成工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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