Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql sql中连接的一般查询_Mysql_Sql - Fatal编程技术网

Mysql sql中连接的一般查询

Mysql sql中连接的一般查询,mysql,sql,Mysql,Sql,我想知道下面的查询之间是否有任何区别。更具体地说,我感兴趣的是连接以及内部连接“=”或子句内部连接的首选方式。谢谢 select distinct gsm.mobile_no, par.name par from ccare.customer cus, ccare.cu_partner par, service.contract contr, service.gsm gsm where par.code = cus.partner_code

我想知道下面的查询之间是否有任何区别。更具体地说,我感兴趣的是连接以及内部连接“=”或子句内部连接的首选方式。谢谢

        select distinct gsm.mobile_no, par.name par
        from ccare.customer cus, ccare.cu_partner par, service.contract contr, service.gsm gsm
        where par.code = cus.partner_code
        and contr.contract_no = gsm.contract_code
        and gsm.code = sgcp.code

        select distinct gsm.mobile_no, par.name par
        from ccare.customer cus 
        inner join ccare.cu_partner par on par.code = cus.partner_code 
        inner join service.contract contr on contr.contract_no = service.gsm.contract_code
        inner join charge.gsm_charge_plan sgcp on sgcp.service_code = gsm.code 

这只是两种不同的连接方式


第一种称为θ连接方式,另一种称为ANSI连接方式。两者都很相似,选择哪种方法取决于您。

从性能上看,没有区别。显式联接更易于阅读。您也可以在此处检查MySQL查询执行计划解释命令:假设逗号联接不存在。@user3017335-当您使用隐式联接语法逗号分隔从句时,很容易错过一个连接条件,比如gsm.code=sgcp.code,最终得不到预期的结果;几乎所有的RDBMS都需要ON子句,因此您必须至少指定一个。这也使得在心理上将条件分组到它们所属的表中变得更容易。请注意,像左连接这样的事情变得很难编写-直到WHERE,您才知道效果,而且更容易意外地得到一个内部连接。。。。另外,我认为它已经被弃用了。