博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
夺标查询和联合查询有什么区别么
阅读量:4691 次
发布时间:2019-06-09

本文共 805 字,大约阅读时间需要 2 分钟。

sql = "select [个人信息$].*,[工作经历$].* from [个人信息$],[工作经历$] where [个人信息$].UID=[工作经历$].UID"

sql = "select [个人信息$].*,[工作经历$].* from [个人信息$] inner Join [工作经历$] on [个人信息$].UID=[工作经历$].UID"
这2个SQL执行结果是一样的,难道没有区别么?

第一种是普通的多表查询,内部还是笛卡尔积的逐行的搜索机制,如果查询的几张表数据量大的话会降低性能。慎用。 第二种是内连接。 两种方式得到的结果是一致的,推荐使用第二种。
多表连接查询按要查的结果而定 第一个,就是普通的连接查询,等同于 select   C.字段一 ,  count(A.主键) from  Table  A inner join Table  B  on A.B的主键  =  B.主键 inner join Table  C  on B.C的主键  =  C.主键 group   C.字段一 或 select   C.字段一 ,  count(A.主键) from  Table  A join Table  B  on A.B的主键  =  B.主键 join Table  C  on B.C的主键  =  C.主键 group   C.字段一 第二个采用了左连接 也就是以A为主表,要把条件中A的显示完全,即如果C.字段1对应的A主键为空,那么就显示0,可如果在第一中查询,如果为空,那就不显示了 正常来说,速度都差不多,因为执行方式基本一致 SELECT * FROM t1 LEFT JOIN t2 ON (column1) WHERE t2.column2=5;

转载于:https://www.cnblogs.com/panxuejun/p/6054792.html

你可能感兴趣的文章