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>
可以看出 左边表中的数据全部存在(如果右边表不存在关联,则用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>