一、内连接 ——inner join(inner可以省略)
返回两个表的交集:
1.1隐式内连接(看不到join的内连接)
就是加了条件的交叉连接:select * from A,B where A.id = B.aid
比如A的id有{1,2,3},B的aid有{2,3,4},得到的数据:
id……..A表数据(不含id)……..aid……..B表数据(不含aid)
2 不为空 2 不为空
3 不为空 3 不为空
1.2显式内连接
select * from A inner join B on A.id = B.aid
得到的数据和隐式内连接一样
select * from A inner join B using (id)
当B表中的外键名等于A表的主键名时使用,查询结果只有一个id字段的值
比如A的id有{1,2,3},B的id有{2,3,4},得到的数据:
id……..A表数据(不含id)……..B表数据(不含aid)
2 不为空 不为空
3 不为空 不为空
示例
SELECT 表1.字段1,表2.字段2 FROM 表1,表2 WHERE 表1.RowGuid = 表2.RowGuid
二、交叉连接
返回两个表的笛卡尔积:select * from A,B
比如A的id有{1,2,3},B的aid有{2,3,4},得到的数据:
id …..aid…..
1 2
1 3
1 4
2 2
…. ….
3 3
3 4
三、外连接
返回两个表的并集
3.1左外连接left outer join(outer 省略)
select * from A left outer join B on A.id = B.aid
返回A和B的并集,比如A的id有{1,2,3},B的oid有{2,3,4},返回的是{1,2,3},id为1的记录中B表信息为空
id……..A表数据(不含id)……..aid……..B表数据(不含aid)
1 不为空 空 空
2 不为空 2 不为空
3 不为空 3 不为空
3.2右外连接right outer join(outer 省略)
select * from A right outer join B on A.id = B.aid
返回A和B的并集,比如A的id有{1,2,3},B的oid有{2,3,4},返回的是{2,3,4},id为4的记录中A表信息为空
id……..A表数据(不含id)……..aid……..B表数据(不含aid)
2 不为空 2 不为空
3 不为空 3 不为空
空 空 4 不为空