假设我有2个表:多列性能的左连接?
table1 :(20.000 records)
id code1 code2 something status
table2: (7.500 records)
id code1 code2 name
所有我想要通过使用本查询列表中的“名称”表1中的所有记录表2:
SELECT DISTINCT `tb1`.*, `tb2`.`name` FROM `table1` AS `tb1`
LEFT JOIN `table2` AS `tb2`
ON (tb1.code1 = tb2.code1 AND tb1.code2 = tb2.code2)
WHERE (tb1.status = 1)
但我花了太长时间检索数据(5分钟后我仍然无法看到结果)。
这样做的最好方法是什么?
在此先感谢..
当你只想要右手表的某些状态的记录时,为什么要进行LEFT JOIN?只要做一个INNER JOIN,并检查你的表是否有适当的索引。 – nnnnnn
糟糕,我的排字错误。对不起:D。我更新了我的问题 –
您确定自己的数据是否如您期望的那样?在table2中有多行具有相同的code1和code2(例如多行Code1 ='abc'和code2 ='def')?如果花费5分钟以上,则必须拉回HEAP行。 – mwan