数据库中的原表
---------------------------------------------------------------------
Persons表:
P_Id |
name |
address |
1 |
张三丰 |
光明顶45号 |
2 |
李四光 |
中华路112号 |
3 |
王五龙 |
南京路8号 |
Orders表:
O_id |
order_no |
P_id |
1 |
1111 |
3 |
2 |
1122 |
3 |
3 |
1134 |
1 |
4 |
1177 |
1 |
5 |
1200 |
5 |
内连接INNERJOIN(或者JOIN)
---------------------------------------------------------------------
两个表中只有都满足条件的才显示,显示最少:
SELECT Persons.name, Orders.order_no FROMPersons INNER JOIN Orders ON Persons.P_id=Orders.P_id ORDER BY Orders.order_no
结果集:
name |
order_no |
王五龙 |
1111 |
王五龙 |
1122 |
张三丰 |
1134 |
张三丰 |
1177 |
左连接LEFTJOIN(或者LEFT OUTER JOIN)
---------------------------------------------------------------------
左表中无论有没满足条件的都全显示,右表只有满足条件的才显示:
SELECT Persons.name, Orders.order_no FROMPersons LEFT JOIN Orders ON Persons.P_id=Orders.P_id ORDER BY Orders.order_no
结果集:
name |
order_no |
王五龙 |
1111 |
王五龙 |
1122 |
张三丰 |
1134 |
张三丰 |
1177 |
李四光 |
|
右连接RIGHTJOIN(或者RIGHT OUTER JOIN)
---------------------------------------------------------------------
右表中无论有没满足条件的都全显示,左表只有满足条件的才显示:
SELECT Persons.name, Orders.order_no FROMPersons RIGHT JOIN Orders ON Persons.P_id=Orders.P_id ORDER BY Orders.order_no
结果集:
name |
order_no |
王五龙 |
1111 |
王五龙 |
1122 |
张三丰 |
1134 |
张三丰 |
1177 |
|
1200 |
全连接FULLJOIN(或者FULL OUTER JOIN)
---------------------------------------------------------------------
两个表中只要有满足条件的都全显示,显示最多:
SELECT Persons.name, Orders.order_no FROMPersons FULL JOIN Orders ON Persons.P_id=Orders.P_id ORDER BY Orders.order_no
结果集:
name |
order_no |
王五龙 |
1111 |
王五龙 |
1122 |
张三丰 |
1134 |
张三丰 |
1177 |
|
1200 |
李四光 |
|