mysql left join 出现的结果会重复
left join 基本用法
MySQL left join 语句格式
A LEFT JOIN B ON 条件表达式
left join 是以A表为基础,A表即左表,B表即右表。
左表(A)的记录会全部显示,而右表(B)只会显示符合条件表达式的记录,如果在右表(B)中没有符合条件的记录,则记录不足的地方为NULL。
使用left join, A表与B表所显示的记录数为 1:1 或 1:0,A表的所有记录都会显示,B表只显示符合条件的记录。
但如果B表符合条件的记录数大于1条,就会出现1:n的情况,这样left join后的结果,记录数会多于A表的记录数。
所以解决办法 都是从一个出发点出发,使A表与B表所显示的记录数为 1:1对应关系。
解决方法
1、select DISTINCT(id) from a left join b on a.id=b.aid DISTINCT查询结果是 第一个表唯一的数据 重复的结果没显示出来
2、select * from a left join(select id from b group by id) as b on a.id=b.aid 拿出b表的一条数据关联 使A表与B表所显示的记录数为 1:1对应关系。
3、select * from a left join (select max(id) from table group by id) as b on a.id=b.aid 拿出b表的最后一条数据关联
mysql left join 出现的结果会重复的更多相关文章
- Mysql Nested-Loop Join Algorithms
		MySQL在多表之间执行join时,利用一种nested-loop algorithm 或者其变种:(嵌套循环) Nested-Loop Join Algorithm 一个简单的嵌套循环连 ... 
- MySQL 高级—— Join 、索引 、优化
		个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.Join 查询 1.SQL执行顺序(一般情况下) 1.1 手写顺序: SELECT DISTINCT ... 
- MySQL 的 join 功能弱爆了?
		大家好,我是历小冰,今天我们来学习和吐槽一下 MySQL 的 Join 功能. 关于MySQL 的 join,大家一定了解过很多它的"轶事趣闻",比如两表 join 要小表驱动大表 ... 
- MySQL Left Join,Right Join
		魂屁,东西发这里了关于Left Join,Right Join的 在讲MySQL的Join语法前还是先回顾一下联结的语法,呵呵,其实连我自己都忘得差不多了,那就大家一起温习吧(如果内容有错误或有疑问, ... 
- MySQL Full Join的实现
		MySQL Full Join的实现 由于MySQL不支持FULL JOIN,以下是替代方法 left join + union(可去除反复数据)+ right join select * from ... 
- mysql  left  join
		MySQL左连接不同于简单连接.MySQL LEFT JOIN提供该表额外字段在左侧. 如果使用LEFT JOIN,得到的所有记录的匹配方式相同, 在左边表中得到的每个记录不匹配也会有一个额外的记录. ... 
- MySQL的JOIN(一):用法
		JOIN的含义就如英文单词"join"一样,连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接.这里描述先甩出一张用烂了的图,然后插入测试数据. CREATE TABLE ... 
- MySQL的JOIN(三):JOIN优化实践之内循环的次数
		这篇博文讲述如何优化内循环的次数.内循环的次数受驱动表的记录数所影响,驱动表记录数越多,内循环就越多,连接效率就越低下,所以尽量用小表驱动大表.先插入测试数据. CREATE TABLE t1 ( i ... 
- MySQL的JOIN(四):JOIN优化实践之快速匹配
		这篇博文讲述如何优化扫描速度.我们通过MySQL的JOIN(二):JOIN原理得知了两张表的JOIN操作就是不断从驱动表中取出记录,然后查找出被驱动表中与之匹配的记录并连接.这个过程的实质就是查询操作 ... 
随机推荐
- bash shell & front-end  & auto publish &  auto deploy
			bash shell & front-end & auto publish & auto deploy $ zip -r apitool-2018-11-22.zip apit ... 
- POJ 3264 RMQ问题 用dp解决
			#include <cstdio> #include <cstring> #include <iostream> using namespace std; ; #d ... 
- 将[object Object]转换成json对象
			这两天在做中英文双版的文件,页面根据语言读取不同的内容.js模板用的是ejs json文件: "components":{ "pages":{ "ho ... 
- QQ5.0侧滑
			package com.example; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; impo ... 
- [bzoj3238][Ahoi2013]差异_后缀数组_单调栈
			差异 bzoj-3238 Ahoi-2013 题目大意:求任意两个后缀之间的$LCP$的和. 注释:$1\le length \le 5\cdot 10^5$. 想法: 两个后缀之间的$LCP$和显然 ... 
- A Simple Problem with Integers-POJ3468
			Description You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. On ... 
- IE11 文档模式空白
			环境描述: win7 64位系统 安装了 更新 IE11-Windows6.1-KB2929437-x64.IE11-Windows6.1-KB3008923-x64 解决方案: 卸载 IE11-Wi ... 
- hdu 2544 最短路(SPFA算法)
			本题链接:点击打开链接 本题大意: 首先输入一个n,m.代表有n个点.m条边.然后输入m条边,每条边输入两个点及边权.1为起点,n为终点.输入两个零表示结束. 解题思路: 本题能够使用SPFA算法来做 ... 
- uva 439 Knight Moves 骑士移动
			这道题曾经写过,bfs.用队列,不多说了,上代码: #include<stdio.h> #include<stdlib.h> #include<string.h> ... 
- vux 实现多栏滚动
			1.PopupPicker 组件 <!-- vux-ui --> <template> <div> <!-- 标题栏 --> <x-header ... 
