如题所述
说起è¿ä¸¤ç§èæ¥æ¹å¼ï¼ä¸å®è¦æRight Joinè系起æ¥ã
ä¸ãéä¹ã
1ãLeft Joinï¼å·¦èæ¥ï¼
以左表为ä¸å¿ï¼è¿å左表ä¸ç¬¦åæ¡ä»¶çææè®°å½ä»¥åå³è¡¨ä¸èç»å段ç¸ççè®°å½ââå½å³è¡¨ä¸æ ç¸åºèæ¥è®°å½æ¶ï¼è¿å空å¼ã
2ãRight Joinï¼å³èæ¥ï¼
以å³è¡¨ä¸ºä¸å¿ï¼è¿åå³è¡¨ä¸ç¬¦åæ¡ä»¶çææè®°å½ä»¥å左表ä¸èç»å段ç¸ççè®°å½ââå½å·¦è¡¨ä¸æ ç¸åºèæ¥è®°å½æ¶ï¼è¿å空å¼ã
3ãInner Joinï¼çå¼è¿æ¥ï¼
è¿å两个表ä¸èç»å段ç¸ççè¡ã
äºã示ä¾ã
1ãæå ¥æµè¯è¡¨(test1,test2)
create table test1 --æµè¯è¡¨1
(id int not null,
value char(10) )
create table test2 --æµè¯è¡¨2
(id int not null,
value char(10) )
2ãæå ¥æ°æ®
--insert into test1
insert into test1
values (1,'testaa')
insert into test1
values (2,'testaa')
insert into test1
values (3,'testaa')
--insert into test2
insert into test2
values (1,'testaa2')
insert into test2
values (2,'testaa2')
insert into test2
values (4,'testaa2')
3ãæ¥è¯¢ç»ææ¯è¾ï¼éå¾ï¼
select * from test1 a left join test2 b on a.id = b.id
select * from test1 a right join test2 b on a.id = b.id
select * from test1 a inner join test2 b on a.id = b.id
4ãå é¤æµè¯è¡¨
drop table test1
drop table test2
举个例子你就能知道了!
A表(a1,b1,c1) B表(a2,b2)
a1 b1 c1 a2 b2
01 数学 95 01 张三
02 语文 90 02 李四
03 英语 80 04 王五
select A.*,B.* from A
inner join B on(A.a1=B.a2)
结果是:
a1 b1 c1 a2 b2
01 数学 95 01 张三
02 语文 90 02 李四
select A.*,B.* from A
left outer join B on(A.a1=B.a2)
结果是:
a1 b1 c1 a2 b2
01 数学 95 01 张三
02 语文 90 02 李四
03 英语 80 NULL NULL本回答被网友采纳
你可以理解为 JOIN 是 INNER JOIN 的缩写。
LEFT JOIN 等价于 LEFT OUTER JOIN
RIGHT JOIN 等价于 RIGHT OUTER JOIN