left join(左连接):返回包括左表的所有记录和右表中联结字段相等的记录。
right join(右连接):返回包括右表中的所有记录和左表中联结字段相等的记录。
inner join(等值连接):只返回两个表中联结字段相等的行。
left join例子:
表A记录如下:aID aNum1 a200501112 a200501123 a200501134 a200501145 a20050115表B记录如下:bID bName1 20060324012 20060324023 20060324034 20060324048 2006032408--------------------------------------------sql语句如下:select * from Aleft join Bon A.aID = B.bID结果如下:aID aNum bID bName1 a20050111 1 20060324012 a20050112 2 20060324023 a20050113 3 20060324034 a20050114 4 20060324045 a20050115 NULL NULL
以表A的记录为基础,A可以看成左表,B可以看成右表。
左表A的记录会全部表示出来,而右表B只会显示符合搜索条件的记录,B表不足的地方均为NULL。
right join例子
sql语句如下:
select * from A
right join B
on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
NULL NULL 8 2006032408
和left join结果刚好相反,这次是以右表B为基础,A表不足的地方用NULL填充。
inner join例子
sql语句如下:
select * from A
innerjoin B
on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
inner join并不以谁为基础,它只显示符合条件的记录。
