我在Microsoft Access上有两个表:T_DATAS(大约200 000行)和T_REAF(大约1000行)。SQL查询优化JOIN多列
T_DATAS有很多列(大约30列),T_REAF有大约10列。
我必须告诉你,我不允许更改这些表格,也不允许创建其他表格。我必须与它合作。
两个表都有6列是相同的。我需要连接这6列中的表,选择T_DATAS中的所有列和T_REAF中但不包含在T_DATAS中的列。
我的查询是:
SELECT A.*, B.CARROS_NEW, B.SEGT_NEW, B.ATTR INTO FINALTABLE FROM T_DATAS A LEFT JOIN T_REAF B ON A.REGION LIKE B.REGION AND A.PAYS LIKE B.PAYS AND A.MARQUE LIKE B.MARQUE AND A.MODELE LIKE B.MODELE AND A.CARROS LIKE B.CARROS AND A.SEGT LIKE B.SEGT
我有结果我需要的,但问题是,这个查询花费了太多的时间给结果(约3分钟)。 我知道T_DATAS包含很多行(200 000),但我认为3分钟对于此查询来说太长了。
你能告诉我这个查询有什么问题吗?
非常感谢您的帮助
为什么你在查询中使用** like **? – pedram
另外,考虑在桌子上放一些索引以加快查询速度 – Veljko89