ITPub博客

首页 > Linux操作系统 > Linux操作系统 > left join,inner join,right join,cross join,full join

left join,inner join,right join,cross join,full join

原创 Linux操作系统 作者:lsq_008 时间:2011-11-18 09:24:52 0 删除 编辑

cross join 是笛卡儿乘积就是一张表的行数乘以另一张表的行数

left join 第一张表的连接列在第二张表中没有匹配是,第二张表中的值返回null

right join 第二张表的连接列在第一张表中没有匹配是,第一张表中的值返回null

full join 返回两张表中的行 left join+right join

inner join 只返回两张表连接列的匹配项

 

SQL> create table a (a int,b int);

 

Table created.

 

SQL> create table b (a int ,b int);

 

Table created.

 

SQL> insert into a values(1,1);

 

1 row created.

 

SQL> insert into a values(2,2);

 

1 row created.

 

SQL> insert into b values(1,1);

 

1 row created.

 

SQL> insert into b values(3,3);

 

1 row created.

 

SQL> select * from a;

 

         A          B

---------- ----------

         1          1

         2          2

 

SQL> select * from b;

 

         A          B

---------- ----------

         1          1

         3          3

 

 

SQL> select * from a left join b on a.a=b.a;                  ----left join

 

         A          B          A          B

---------- ---------- ---------- ----------

         1          1          1          1

         2          2

 

SQL> select * from a right join b on a.a=b.a;                  ----right join

 

         A          B          A          B

---------- ---------- ---------- ----------

         1          1          1          1

                               3          3

 

SQL> select * from a join b on a.a=b.a;                                 ---inner join

 

         A          B          A          B

---------- ---------- ---------- ----------

         1          1          1          1

 

SQL> select * from a full join  b on a.a=b.a;                      ---full join

 

         A          B          A          B

---------- ---------- ---------- ----------

         1          1          1          1

         2          2

                               3          3

                                                      

SQL> select * from a cross join b;                                             ---cross join

 

         A          B          A          B

---------- ---------- ---------- ----------               

         1          1          1          1

         1          1          3          3

         2          2          1          1

         2          2          3          3

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10972173/viewspace-711547/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: natural join
请登录后发表评论 登录
全部评论
十余年大型金融及电信系统数据库管理经验,曾服务于中国建设银行、中国移动。对oracle,mysql数据库有深入了解。 擅长python开发,独立开发了开源数据库自动化监控运维平台Power Monitor。

注册时间:2008-02-29

  • 博文量
    335
  • 访问量
    1369119