mysql查询左边大于左边_mysql中左连接后,最终的记录数大于左边表的记录分析...

如果B表符合条件的记录数大于1条,就会出现1:n的情况,这样left join后的结果,记录数会多于A表的记录数。

例如:member与member_login_log表的结构如下,member记录会员信息,member_login_log记录会员每日的登入记录。member表的id与member_login_log表的uid是对应关系。

member 表

0c19a70f093e82747dea0b3a75aa2ab4.png

member_login_log 表

5f3e2fec4c46f1c359f60628c57bd622.png

查询member用户的资料及最后登入日期:

如果直接使用left join

select a.id, a.username, b.logindate

from memberas a

left join member_login_logas bon a.id = b.uid;

因member_login_log符合条件的记录比member表多(a.id = b.uid),所以最后得出的记录为:

a25e5ac0ac99efa717afb750a85197a4.png

但这并不是我们要的结果,因此这种情况需要保证B表的符合条件的记录是空或唯一,我们可以使用group by来实现。

select a.id, a.username, b.logindate

from memberas a

left join (select uid,max(logindate)as logindatefrom member_login_loggroup by uid)as b

on a.id = b.uid;

f45a73ad4bc915c981360ffc14bbb82a.png

总结:使用left join的两个表,最好是1:1 或 1:0的关系,这样可以保证A表的记录全部显示,B表显示符合条件的记录。

MySQL左连接时 返回的记录条数 比 左边表 数量多

在学MySQL的连接时,为了便于记忆,就将左连接 记做 最后结果的总记录数 和 进行左连接的左表的记录数相同,简单的说就是下面这个公式 count(table A left join table B) ...

无法远程连接mysql,连接后也没有权限创建数据库

问题现象:无法远程连接mysql,连接后也没有权限创建数据库 问题原因: MySql-Server 出于安全方面考虑只允许本机(localhost, 127.0.0.1)来连接访问. 这对于 Web- ...

Oracle查询库中记录数大于2千万的所有表

Oracle查询库中记录数大于2千万的所有表 假如当前用户拥有select any table权限,则可以使用下列sql语句: select table_name, num_rows from dba ...

postgre查询表和记录数,查表字段

select relname as TABLE_NAME, reltuples as rowCounts from pg_class where relkind = 'r' and relnamesp ...

MYSQL数据库学习十一 多表数据记录查询

11.1 关系数据操作 并(UNION):把具有相同字段数目和字段类型的表合并到一起. 笛卡尔积(CARTESIAN PRODUCT):没有连接条件表关系的返回结果.字段数=table1字段数+tab ...

MySQL多表数据记录查询详解

在实际应用中,经常需要实现在一个查询语句中显示多张表的数据,这就是所谓的多表数据记录连接查询,简称来年将诶查询. 在具体实现连接查询操作时,首先将两个或两个以上的表按照某个条件连接起来,然后再查询到所 ...

SQL中左连接on and条件和where条件执行先后顺序

left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录. right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录. inner join: 内连接,又 ...

MySQL数据库——连接查询

1.基本含义 连接就是指两个或2个以上的表(数据源)“连接起来成为一个数据源”. 实际上,两个表的完全的连接是这样的一个过程: 左边的表的每一行,跟右边的表的每一行,两两互相“横向对接”后所得到的所有 ...

MySQL常见连接查询

在实际应用中,由于不同的业务需求,一般的select查询语句无法满足要求.所以就需要了解一些MySQL的高级查询方式 内连接 inner join 典型的连接查询,有相等(=)连接和不等(

随机推荐

Windows与Linux共享文件夹互相访问

[原文]  首先安装并配置软件samba [html] view plain copy sudo yum install samba samba-client vim /etc/samba/smb.c ...

[原创]南水之源A*(A-Star)算法

开发导航之前我看了一些A*(A-Star)算法的例子和讲解.没有求得甚解!不过也从A*(A-Star)算法中得到启发,写了一套自己的A*(A-Star)算法.当然,这不是真正(我也不知道)的A*(A- ...

linear-gradient 的“高能”用法

首先,让我们来了解一下“linear-gradient”的基本用法: 说明:用线性渐变创建图像 语法: = linear-gradient([ [ &l ...

ado.net 数据库连接的两方式种

DataAdapter: string connectionString = "data source=127.0.0.1;Database=dong;user id=sa;password ...

IoC容器Autofac正篇之简单实例(四)

先上一段代码. namespace ConsoleApplication3 { class Program { static void Main(string[] args) { ContainerB ...

Iterator、for..of,for...in和自定义遍历器**

Iterator.for..of,for...in和自定义遍历器 Iterator: var arr = [1,2,3,4,5]; var ite = arr[Symbol.iterator](); ...

MyEclipse设置jsp页默认打开方式

可以用来设置jsp页默认打开是代码编辑模式而不是半视图半代码的模式. 1.选择菜单Window→Preferences. 2.选择General→Editors→File Associations.在 ...

MFC中关于运行时类信息及动态创建对象的两个宏的意义(转)

http://blog.csdn.net/ligand/article/details/49839507 MFC运行时类信息 用途: 程序在运行时,获取对象类的信息及类的继承关系 实现: 1.定义的类 ...

Python开发——数据类型【集合】

集合的定义 由一个或多个确定的元素所构成的整体 可变集合 s=set('hello') print(s) # {'e', 'l', 'o', 'h'} s=set(['alex','alex','Lu ...

01. pt-align

01. pt-align pt-align xxx.txt =========================================== pt-align对齐输出格式 name city a ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值