先说结论,A left join B 和 B right join A效果是一样一样的。

left  join(左链接)where条件语句只影响右表,右表存在符合条件的记录则展示,否则为null,右表多出的数据不展示。

右链接雷同。

例:

表a,用户信息表,表b,用户的积分流水记录表。

left join:

SELECT a.merchant_id,a.member_id,a.wid,b.point_flow_id 
FROM `cc_member_card_main_info_6` a 
left join `cc_point_log_6` b  
on a.merchant_id = b.merchant_id and a.member_id = b.member_id 
WHERE a.merchant_id = 870;

左链接结果:

right join:

SELECT a.merchant_id,a.member_id,a.wid,b.point_flow_id 
FROM `cc_point_log_6` b  
right join `cc_member_card_main_info_6` a 
on a.merchant_id = b.merchant_id and a.member_id = b.member_id 
WHERE a.merchant_id = 870;

右链接结果:

结果相同,同时可以看到,表a(用户信息表)和表b(用户流水记录表)是一对多的关系,对应的多条记录都会被查找出来。

---------

在另一个文章看到另外一个点:小表驱动大表原则。参考https://blog.csdn.net/huangfan322/article/details/50516851

意思是说,查到的记录以符合条件的,记录少的表为主。

以左链接为例:

修改查询语句,添加记录id限定条件,sql语句如下:

SELECT a.merchant_id,a.member_id,a.wid,b.point_flow_id 
FROM `cc_member_card_main_info_6` a 
left join `cc_point_log_6` b  
on a.merchant_id = b.merchant_id and a.member_id = b.member_id 
WHERE b.merchant_id = 870 and b.point_flow_id < 3000;

运行结果:

用户信息共19条,用户积分记录共9条,查询结果只展示了5条。

A left join B 和 B right join A相关推荐

  1. java fork join原理_细说Fork/Join框架

    什么是Fork/Join框架? Fork/Join框架是JDK1.7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干小任务,最终汇总每个小任务结果后得到大任务结果的框架.Fork就是把一个大 ...

  2. mysql right join实例_MySQL表LEFT JOIN左连接与RIGHT JOIN右连接的实例教程

    LEFT JOIN 语法用法与实例MySQL LEFT JOIN 语法 SQL(MySQL) LEFT JOIN 会取得左表(table1)全部记录,即使右表(table2)并无对应匹配记录.LEFT ...

  3. 【Transact-SQL】SQL Server自动把left join自动转化为inner join、以及关联时的数据重复问题...

    1.SQL Server自动把left join自动转化为inner join的问题: 下面的两个语句都是left join的,但是一个却转化成了 inner join drop table a,B ...

  4. Python中join()方法和os.path.join()方法

    join() 方法: 描述:join()方法用于将序列中的元素以指定的字符连接成一个新的字符串 语法:x.join(y) y: 可迭代对象,对象内的元素必须是字符串类型.对象可以是字符串.元组.列表和 ...

  5. Mysql 优化器内部JOIN算法hash join Nestloopjoin及classic hash join CHJ过程详解

    Mysql hash join之classic hash join CHJ过程详解 hash join的历史 优化器里的hash join算法在SQL Server.Oracle.postgress等 ...

  6. mysql连接方式左联_数据库中的左连接(left join)和右连接(right join)区别 | 改变自己...

    Left Join / Right Join /inner join相关 关于左连接和右连接总结性的一句话: 左连接where只影向右表,右连接where只影响左表. Left Join select ...

  7. mysql join 与 cross join 效率_浅析Mysql Join语法以及性能优化

    在讲MySQL的Join语法前还是先回顾一下联结的语法,呵呵,其实连我自己都忘得差不多了,那就大家一起温习吧,这里我有个比较简便的记忆方法,内外联结的区别是内联结将去除所有不符合条件的记录,而外联结则 ...

  8. mysql+join的原理,Mysql连接join查询原理知识点

    Mysql连接join查询原理知识点 Mysql连接(join)查询 1.基本概念 将两个表的每一行,以"两两横向对接"的方式,所得到的所有行的结果. 假设: 表A有n1行,m1列 ...

  9. Hive中的map join、left semi join和sort merge bucket join

    map join map join是将join双方比较小的表直接分发到各个 map进程的内存中,在map进程中进行join操作,这样就不用进行reduce步骤,从而提高了速度. 如果不指定mapjoi ...

  10. 1.19.5.4.流上的Join、常规Join、时间区间Join、时态表Join、基于处理时间的时态Join、时态表函数Join、用法

    1.19.5.4.流上的Join 1.19.5.4.1.常规Join 1.19.5.4.2.时间区间Join 1.19.5.4.3.时态表Join 1.19.5.4.4.基于处理时间的时态Join 1 ...

最新文章

  1. 网易云课堂 学习教程
  2. 将大核卷积分三步,清华胡事民、南开程明明团队全新视觉骨干VAN,超越SOTA ViT和CNN...
  3. C++使用数组实现stack堆栈(附完整源码)
  4. 【每日一题】4月9日题目精讲 Running Median
  5. ExecuteNonQuery()方法发即:是指执行非查询SQL命令,如:增、删、改等
  6. python安装盒怎么打开_安装MySQL-python报错
  7. PRML笔记:模式识别与机器学习
  8. LeetCode 169 Majority Element 解题报告
  9. matlab傅里叶光学仿真,计算傅里叶光学实现衍射图样的计算
  10. PreScan快速入门到精通第三讲快速搭建第一个自动驾驶仿真模型
  11. 字节跳动怎么都十万人了?
  12. 华为手机USB调试搜不到设备
  13. 苹果开发者怎么避免封号
  14. Sentiment Classification towards Question-Answering with Hierarchical Matching Network 论文阅读笔记
  15. symbian程序的前台运行和后台运行
  16. .net 导出excel_使用 EasyPOI 优雅导出Excel模板数据(含图片)
  17. archetype-catalog.xml
  18. Gartner:超级应用成为战略技术趋势,可以从中学习到什么
  19. JDK版本8u191与8u192的区别, jdk小版本号奇数与偶数的区别
  20. 6位密码锁安全性级别分析探讨

热门文章

  1. JavaScript聊天框插入表情: 点击表情时输入框失焦, 无法插入到输入框.
  2. linux 切换一般用户名,linux 切换用户名的方法
  3. games101——作业8
  4. 计算机操作系统课后习题答案(第四版).docx
  5. 常用服务器日志查询方法
  6. SQL Server数据库 附加数据库时出错。有关详细信息,请单击“消息”列中的超链接。
  7. 如何登录共享文件夹(域账号和密码)
  8. Windchill中表达式异常的处理
  9. 如果Linux下突然什么命令都无法识别了解决方法
  10. (摘自邀月csdn)安装sql2008 enterprise (English正式版)图解