mysql left join on or_关于 MySQL LEFT JOIN 不可不知的事
你认为自己已对 MySQL 的 LEFT JOIN 理解深刻,这篇文章,我想让你能多学会点东西!
ON 子句与 WHERE 子句的不同
一种更好地理解带有 WHERE ... IS NULL 子句的复杂匹配条件的简单方法
Matching-Conditions 与 Where-conditions 的不同
你一定知道关于 “A LEFT JOIN B ON 条件表达式” 的基础用法
ON 条件(“A LEFT JOIN B ON 条件表达式”中的ON)用来决定如何从 B 表中检索数据行。
如果 B 表中没有任何一行数据匹配 ON 的条件,将会额外生成一行所有列为 NULL 的数据
在匹配阶段 WHERE 子句的条件都不会被使用。仅在匹配阶段完成以后,WHERE 子句条件才会被使用。它将从匹配阶段产生的数据中检索过滤。
例如:news 与 news_category表的结构如下,news表的category_id与news_category表的id是对应关系。

显示news表记录,并显示news的category名称,查询语句如下
select a.id,a.title,b.name as category_name,a.content,a.addtime,a.lastmodify
from news as a left join news_category as b
on a.category_id= b.id;
因 news_category 表没有id=4的记录,因此news 表中category_id=4的记录的category_name=NULL
使用left join, A表与B表所显示的记录数为 1:1 或 1:0,A表的所有记录都会显示,B表只显示符合条件的记录。
但如果B表符合条件的记录数大于1条,就会出现1:n的情况,这样left join后的结果,记录数会多于A表的记录数。
例如:member与member_login_log表的结构如下,member记录会员信息,member_login_log记录会员每日的登入记录。member表的id与member_login_log表的uid是对应关系。

查询member用户的
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
