我需要将一个表(表A)中的所有列连接到另外两个表(B& C)中的单个列。我的SQL工作但很慢。问题来自加入A和C.我已经考虑了优化,但没有找到任何加速它的东西。不幸的是,我无法改变桌面设计。
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;
感谢您的任何见解!
答案 0 :(得分:1)
对于您的查询,您需要tableB(id, user_email)
和tableC(user_id, timestamp, transaction_number)
以及tableA(timestamp, user_id)
上的索引。
我不确定你能不能做得更好。