左连接表的一部分

时间:2013-11-16 11:35:27

标签: mysql sql left-join

我正在尝试使用左连接加入两个表,即table1 left join table2。 我只想将A中的部分行与B连接。是否建议我使用子查询来过滤table1中的行,或者在where子句中避免它们以提高查询性能?

select t1.a
    ,t1.b
    ,t2.c
from (select * 
      from table1 
      where a='x'
     ) t1 LEFT JOIN table2 t2 on t1.d=t2.d

select t1.a
       ,t1.b
       ,t2.c
from table1 t1 LEFT JOIN table2 t2 on t1.d=t2.d 
where t1.a='x'

2 个答案:

答案 0 :(得分:0)

检查查询计划,但我怀疑它会有什么不同。

答案 1 :(得分:0)

这在很大程度上取决于数据库的结构和内容。最好的方法是查看查询计划并将其与两个版本的查询进行比较。

您可以找到有用的文档:MySQL Query Execution Plan