首页 > 代码库 > sql所有连接解释

sql所有连接解释

--内连接是左边匹配右边表,有对应的则显示
--左连接是已左边表作为基准匹配右边表,如果右边表没有对应的则为null
--右连接是已右边表作为基准匹配左边表,如果左边表没有对应的则为null
--完全连接是左边表匹配右边表,如果有则显示没有则显示为null
--交叉连接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉连接也称作笛卡尔积。

--1)内连接
select a.*,b.* from ATABLE a inner join BTABLE b on a.id=b.parent_id ;
--2)左连接
select a.*,b.* from ATABLE a left join BTABLE b on a.id=b.parent_id;
--3) 右连接
select a.*,b.* from ATABLE a right join BTABLE b on a.id=b.parent_id;
--4)完全连接
select a.*,b.* from ATABLE a full join BTABLE b on a.id=b.parent_id;
--交叉联接
SELECT a.*,b.* FROM ATABLE a CROSS JOIN BTABLE b ;
--自联接
SELECT a.*,b.* FROM ATABLE a,BTABLE b WHERE a.id=b.parent_id;
--2)左外连接
select a.*,b.* from ATABLE a left OUTER join BTABLE b on a.id=b.parent_id;
--3) 右外连接
select a.*,b.* from ATABLE a right OUTER join BTABLE b on a.id=b.parent_id;
--4)完全外连接
select a.*,b.* from ATABLE a full OUTER join BTABLE b on a.id=b.parent_id;

a表 id name b表 id job parent_id
1 张3 1 23 1
2 李四 2 34 2
3 王武 3 34 4
a.id同parent_id 存在关系

sql所有连接解释