a表 left join b表 为啥 b表里的的数据没了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了a表 left join b表 为啥 b表里的的数据没了相关的知识,希望对你有一定的参考价值。

参考技术A 简单来讲,随便来个例子:
A表 B表
id name id name
1 a 1 b
2 b 3 c
4 c
左外连接就是以左表为准,去匹配右表,左表有多少条数据,结果就是多少条数据
select * from A left join B on A.id=B.id
id name id name
1 a 1 b
2 b null null
4 c null null

这样你明白了嘛
参考技术B 左外连接就是以左表为准,去匹配右表 右表只会显示能跟左表匹配的那些信息。 参考技术C select a.*,b.* from a left join b on a.fid=b.id本回答被提问者采纳 参考技术D 我也来学,我是新手

mysql多表left join联合查询效率问题5

mysql多表left join联合查询效率问题5比如有三个表a,b,c a表是b表数据量的100倍,b表是c表数据量的100倍,a表结构复杂字段多,bc表简单字段少,他们都有一个字段cid,是对应的,请问用 表a left join 表b left join 表c和表c left join 表b left join 表a 进行查询效率一样么?搜索条件字段都加过了索引

先拆开看,select * from a left join b on 条件,这个过程时先查询a表所有数据,然后根据on条件查询b表数据,最后加到查询a表的结果里面,所以在a表数据小于b表数据的情况下a left join b比b left join a 快,前提时有索引,三个表join,先看前两个表,就是aUbUc的关系,懂了吧!最后提醒一句如果关联表没有索引最好放最前面,效率会快一点!以上全部来自工作实践! 参考技术A 如果用左外联接
这二个查询含义不一样 结果也不一样
a在前是查询出全部a表数据
c在前 是查询出全部c表数据
如果不管结果 第一种效率高追问

现在的结构是这样的,c表有一百条数据,b表有一万条数据包含c表的一百条的cid,a表有一百万条数据包含c表的一百条cid,abc谁前后出的结果都一样,这种情况是a在前查询快呢还是c在前查询快呢?

以上是关于a表 left join b表 为啥 b表里的的数据没了的主要内容,如果未能解决你的问题,请参考以下文章

left join 右表对应多条记录取第一条

left join 多表关联原理

sql语句左链接left join--3张表关联

如何对超过 2 个表进行 LEFT JOIN?

sql语句左链接left join--3张表关联

sql语句左链接left join--3张表关联