表B id address A_id 1 北京 1 2 上海 3 3 南京 10 /******************************** left join 左连接*****************************************/ 包容性:A表包容B表,左连接左表是全的.(left join 或 left outer join ) SQL语句如下: SELECT A.name, B.address FROM A LEFT JOIN B ON A.id = B.A_id 查询结果为: name address 张 北京 李 NULL 王 上海 /******************************** right join 右连接*****************************************/ 包容性:B表包容A表,右连接右表是全的.(right join 或 right outer join ) SQL语句如下: SELECT A.name, B.address FROM A RIGHT JOIN B ON A.id = B.A_id 查询结果为: name address 张 北京 王 上海 NULL 南京 /******************************** inner join 内连接*****************************************/ 排他性:A,B表中至少有1个匹配时,才返回行。两表的交集 SQL语句如下: select A.name,B.address from A inner join B on A.id = B.A_id
查询结果为: name address 张 北京 王 上海 inner join 内连接等价于下面的sql: SELECT A.name, B.address FROM A, B WHERE A.id = B.A_id /******************************** full join 全连接*****************************************/ 注释:全外连接返回参与连接的两个数据集合中的全部数据,无论它们是否具有与之相匹配的行。在功能上,它等价于