说我有一个这样的查询:
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] 删除。
我来说两句