我何时使用内部联接以及何时使用子查询?

时间:2009-11-01 19:31:36

标签: sql mysql subquery inner-join

内部联接和子查询之间有什么区别?什么时候应该使用子查询?还是内心联盟?我最近处于一种情况,即内连接太慢而子查询是解决方案。从我有限的理解,我认为两者完全相同。

1 个答案:

答案 0 :(得分:1)

如果使用连接或子查询,则无关紧要。您可以将带有子查询的任何查询转换为带有连接的查询。我会选择更具可读性的东西。有时,连接更具可读性。对于其他查询,子查询更具可读性。只要优化两个查询,就不应该有很大的性能差异。

我遇到的一个例外是创建correlated subquery,其中执行的子查询取决于外部查询的结果。这些类型的查询可能很有用,但效率很低。当您必须为查询中的每一行计算数据时,可以使用它们。在这种情况下,您不能使用连接。