我有两个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;


在tbl2中,articleDate和articleTime是varchar(11)和varchar(12),在tbl1中,时间是TIME,日期是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);


有什么办法可以加快查询速度吗?谢谢 !

10-07 23:36