MySQL 您所在的位置:网站首页 join的搭配 MySQL

MySQL

2024-05-13 04:25| 来源: 网络整理| 查看: 265

         SELECT DISTINCT a.domain , b.domain FROM mal_nxdomains_raw a LEFT JOIN mal_nxdomains_detail b ON a.domain = b.domain #and b.date = '20160403' WHERE a.date = '20160403' AND b.date = '20160403'

 

四、on 条件与where 条件 使用位置

on 条件位置在join后面

where 条件在join 与on完成的后面

使用对象

 on 的使用对象是被关联表

where的使用对象可以是主表,也可以是关联表

选择与使用

主表条件筛选:只能在where后面使用。

被关联表,如果是想缩小join范围,可以放置到on后面。如果是关联后再查询,可以放置到where 后面。 

如果left join 中,where条件有对被关联表的 关联字段的 非空查询,与使用inner join的效果后,在进行where 筛选的效果是一样的。不能起到left join的作用。

 

 五、join 流程

      tableA join tableB, 从A表中拿出一条数据,到B表中进行扫描匹配。

      所以A的行数决定查询次数,B表的行数决定扫描范围。例如A表100条,B表200表,需要100次从A表中取出一条数据到B表中进行200次的比对。

      相对来说从A表取数据消耗的资源比较多。所以尽量tableA选择比较小的表。同时缩小B表的查询范围。

 

但是实际应用中,因为二者返回的数据结果不同,使用的索引也不同,导致条件放置在on 和 where 效率是不一定谁更好。要根据需求来确定。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有