左连接
左连接基本格式为A left join B on A.key=B.key,比如以下语句:
1  | select * from A left join B on A.id=B.id;  | 
如果A、B表的数据结构为:
table A | 
table B | 
|---|---|
| id, name | id, name | 
| 1, xiaolu | 1, xiaolu | 
| 2, chuanchuan | 3, chuanchuan | 
这时执行上述语句会得出如下结果:
A.id | 
A.name | 
B.id | 
B.name | 
|---|---|---|---|
| 1 | Xiaolu | 1 | Xiaolu | 
| 2 | chuanchuan | null | null | 
由上述结果可以看出,左连接是以左表为坐标,首先将A表中所有的数据列出来,然后根据on的匹配条件查出B表中的数据并将数据列在A表数据后面,如果在B表中没有与A表中匹配的数据,则显示为null,查询出的总数据数为A表中的数据条目个数。
右连接
右连接基本格式为A right join B on A.key=B.key,比如以下语句:
1  | select * from A right join B on A.id=B.id;  | 
如果A、B表的数据结构为:
table A | 
table B | 
|---|---|
| id, name | id, name | 
| 1, xiaolu | 1, xiaolu | 
| 2, chuanchuan | 3, chuanchuan | 
这时执行上述语句会得出如下结果:
B.id | 
B.name | 
A.id | 
A.name | 
|---|---|---|---|
| 1 | xiaolu | 1 | xiaolu | 
| null | null | 3 | chuanchuan | 
由上述结果可以看出,左连接是以左表为坐标,首先将B表中所有的数据列出来,然后根据on的匹配条件查出A表中的数据并将A表的数据列在B表的前面,如果在A表中没有与B表中匹配的数据,则显示为null,查询出的总数据数为B表中的数据条目个数。
内链接
内连接基本格式为A inner join B on A.key=B.key,比如以下语句:
1  | select * from A inner join B on A.id=B.id;  | 
如果A、B表的数据结构为:
table A | 
table B | 
|---|---|
| id, name | id, name | 
| 1, xiaolu | 1, xiaolu | 
| 2, chuanchuan | 3, chuanchuan | 
这时执行上述语句会得出如下结果:
B.id | 
B.name | 
A.id | 
A.name | 
|---|---|---|---|
| 1 | xiaolu | 1 | xiaolu |