我需要将一个表(表a)中的所有列连接到另两个表(b&c)中的单个列。我的sql可以工作,但是速度很慢。问题来自于加入a和c。我研究过优化,但没有找到任何加速的方法。不幸的是,我不能改变table的设计。
SELECT tableA.*,
tableB.user_email,
tableC.transaction_number
FROM tableA
LEFT OUTER JOIN tableB
ON tableA.user_id=tableB.id
LEFT OUTER JOIN tableC
ON tableA.user_id=tableC.user_id
AND A.timestamp=C.timestamp
ORDER BY A.timestamp DESC;
谢谢你的真知灼见!
1条答案
按热度按时间0x6upsns1#
对于您的查询,您需要索引
tableB(id, user_email)
以及tableC(user_id, timestamp, transaction_number)
以及tableA(timestamp, user_id)
.我不知道你能不能做得更好。