mysql left join 几个意思

left join 用于多表  >1个表
比如
select a.*,b.* from ta as a left join tb as b on a.aid=b.bid
咱们就以实际的代码来查看一下.

请看此链接建一个表. 
http://www.php20.com/forum.php?m ... =220&extra=page%3D1

然后执行

[SQL] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
9
-- 分类, php新闻 id=1  linux新闻 id=2  mysql新闻 id=3 其下 新闻
insert into news_class (class_name) values ('php新闻'),('Linux新闻'),('Mysql新闻');
insert into news(title,class_id,content) values
('php新闻1','1','详情'),
('php新闻2','1','详情'),
('linux新闻1','2','详情'),
('linux新闻2','2','详情'),
('未知分类新闻','4','详情');
select a.title,a.content,b.class_name,b.id as classid from news as a left join news_class as b on a.id=b.id;



得到结果如图
<ignore_js_op> 

1.png (21.64 KB, 下载次数: 0)

下载附件

22 分钟前 上传

 



可以看出 左边表中的数据全部存在(如果右边表不存在关联,则用null填充).也就是  news表(a表) 存在. 左边也就是  sql语句中,左边先出现的表. 
再如下

[SQL] 纯文本查看 复制代码
1
select b.title,b.content,b.class_name,a.id as classid from news_class as a left join news as b on a.id=b.id;


上面左右表换过来. 结果仍然是 左边表的所有数据(右表中就算有,也不显示 ) <ignore_js_op> 




原文地址:https://www.cnblogs.com/ghjbk/p/6681018.html