这两种类型的查询编写有什么区别?

cyvaqqii  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(282)

这个问题在这里已经有答案了

显式与隐式sql联接(12个答案)
两年前关门了。
关于编写sql查询,我可以通过两种方式获取所需的内容:
类型1:

select 
    cl.id 
from 
    datahub_clients             cl,
    datahub_client_accounts     cl_ac,
    datahub_accounts            ac    
where
    cl.id=cl_ac.client_id
    and
    ac.id=cl_ac.account_id
    and
    ac.account_no_dataphile="7H0010A1"
;

类型2:

select 
    cl.id 
from 
    datahub_clients             cl
    join
    datahub_client_accounts     cl_ac
    on
    cl.id=cl_ac.client_id
    join
    datahub_accounts            ac    
    on
    ac.id=cl_ac.account_id
where
    ac.account_no_dataphile="7H0010A1"
;

下面是我脑海中的几个查询:1)sql编译器对它们的解释方式有什么不同吗?2) 在任何人身边都应该有偏好吗(为什么?)3)从可伸缩性的Angular 看,哪一个更好?

nom7f22z

nom7f22z1#

Type 2:

select 
    cl.id 
from 
    datahub_clients             cl
    join
    datahub_client_accounts     cl_ac
    on
    cl.id=cl_ac.client_id
    join
    datahub_accounts            ac    
    on
    ac.id=cl_ac.account_id
where
    ac.account_no_dataphile="7H0010A1"

更好的方法是使用逗号分隔的表名在所有这些表之间创建交叉连接(这在性能方面是昂贵的),因此应该避免这种情况
type-1是一种旧的连接方法,强烈反对使用它

相关问题