vlambda博客
学习文章列表

mysql查询之左连接查询与右连接查询

说明

  • 左连接称之为左外连接,右连接称之为右外连接,这两个连接都是属于外连接。

  • 左连接关键字:left join 表名 on 条件/ left outer 表名 join on 条件。

  • 右连接关键字:right join 表名 on 条件/ right outer 表名 join on 条件。

  • 左连接说明: left join 是 left outer join 的简写,左连接,左表的记录将会全部表示出来,而右表只会显示符合搜索条件的记录,右表记录不足的地方均为NULL。

  • 右连接说明:right join 是 right outer join 的简写,右连接,右表的记录将会全部表示出来,而左表只会显示符合搜索条件的记录,左表记录不足的地方均为NULL。


使用


### websites.id 和 access_log.site_id关联mysql> select * from websites; +----+--------+| id | name |+----+--------+| 1 | google || 2 | taobao || 3 | baidu |+----+--------+
mysql> select * from access_log;+----+---------+| id | site_id |+----+---------+| 1 | 1 || 2 | 2 |+----+---------+
### 列出所有网站名称和这些网站的访问信息,同时列出那些没有访问记录的网站名称mysql> select w.name ,a.* from websites as w left join access_log as a on w.id = a.site_id;+--------+------+---------+| name | id | site_id |+--------+------+---------+| google | 1 | 1 || taobao | 2 | 2 || baidu | NULL | NULL |+--------+------+---------+3 rows in set
mysql> select w.name ,a.* from access_log as a right join websites as w on w.id = a.site_id;+--------+------+---------+| name | id | site_id |+--------+------+---------+| google | 1 | 1 || taobao | 2 | 2 || baidu | NULL | NULL |+--------+------+---------+3 rows in set