sql-在带内部联接的where子句中引用列的更快/更好的方法是什么?

卢卡·雷格尔林(Luca Reghellin)

说我有一个这样的查询:

select table1.id, table1.name
from table1
inner join table2 on table1.id = table2.id
where table1.name = "parent" and table2.status = 1

确实如此,因为有内部联接,所以即使从table1中,我也可以引用table2的状态列?像这样:

select table1.id, table1.name
from table1
inner join table2 on table1.id = table2.id
where table1.name = "parent" and table1.status = 1

如果是的话,两种方法中最好的是什么?

晃晃

如果我没记错的话,您是在内部联接中问,在特定查询中,两个具有相同名称,数据类型和长度的字段将是一个字段。从技术上讲并非如此。无论如何,都Table1.Status将引用,Table1并且Table2.Status将引用Table2的条件/值。

上面的两个查询会产生彼此不同的结果。

对此的一个很好的规则是,将条件保留在基表或上Table1(在这种情况下)。如果某个字段是另一个表的专有字段,那么您将使用该表的字段。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章