MySQL - 从时间距离为 5 分钟的 2 个表中获取行,并将它们放入新表中



我有两个MySQL表(tbl1和tbl2),我想从tbl1和tbl2中获取彼此之间时差为5分钟的行。我想将生成的行放在另一个表中,称为组合

    INSERT INTO combined ( news_id, col1, col2, col3, col4, quote_ID, quote_DATE, quote_TIME)
    SELECT tbl1.news_id, tbl1.col1, tbl1.col2, tbl1.col3, tbl1.articleTime, tbl1.articleDate, tbl2.ID, tbl2.DATE, tbl2.TIME, tbl2.BID_PRICE, tbl2.BID_SIZE, tbl2.ASK_SIZE, tbl2.BID_YIELD, tbl2.ASK_YIELD
    FROM tbl1 JOIN tbl2 
WHERE tbl1.articleDate = tbl2.date 
AND hour(tbl1.articleTime) = hour(tbl2.time) 
AND minute(tbl1.articleTime) = minute(tbl2.time)+5;

articleDate 和 articleTime 在 tbl2 中是 varchar(11) 和 varchar(12),在 tbl1 中,time 是 TIME,date 是 varchar(10)。

我的查询对吗?我能做得更好吗?多谢!

没有人回答(可能太容易了,或者:D),但我想出了一个有效的查询! - 毕竟没那么难

INSERT INTO combined ( news_id, tbl1Date, id, date, time)
     SELECT n.news_id, n.tbl1Time, n.tbl1Date, t.id, t.date, t.time
 FROM tbl1 n
JOIN tbl2 t 
 ON n.tbl1Date= t.date AND hour(n.tbl1Time) = hour(t.time) AND minute(n.tbl1Time)+5 = minute(t.time);

有没有办法加快这个查询?谢谢!

最新更新