关于sql语句的inner join,left join ,right join的区别

来源:互联网 发布:成都知美术馆开放时间 编辑:程序博客网 时间:2024/06/08 17:10

         在这个阳光明媚的日子里,我决定做点什么,鉴于昨天面试的一家公司问了我这个问题,我就像顺便把这个问题给总结一下

         我先概念上讲一下,这三者都是用在表链接查询上面,不同的是返回的结果是不一样的,下面我就用A表和B 表阐述一下。

        A表

        id          name          stuid

        1            林亮            120120

        2            张华            120121

        3            刘聪            120122


        B表

        cid        cname      class       id

        1           语文           301         1

         2          数学            203         1

        3           语文           301          2

        4          英语            402          2

        5          美术            404


        这个表的设计只是简单的举例子,不是很合理,关键是这三个join方法的使用

   1.    select  A.name,A.stuid,B.class from Ainner join  B where A.id = B.id

      结果集:

        name          stuid            class 

        林亮            120120       301

        林亮            120120       203

        张华            120121      301

        张华            120121      401

      查询的表A和表B中只有相对应的数据会显示出来

    2.      select  A.name,A.stuid,B.class from A left  join  B where A.id = B.id

       结果集:

       name          stuid            class 

        林亮            120120       301

        林亮            120120       203

        张华            120121      301

        张华            120121      401

        刘聪            120122

        查询的表A中的数据库会全部出来,即使表B中没有对应的数据


     3.  select  A.name,A.stuid,B.class from Aright join  B where A.id = B.id

      结果集:

        name          stuid            class 

        林亮            120120       301

        林亮            120120       203

        张华            120121      301

        张华            120121      401

                                                404

      查询的表B中的数据会全部显示,即使表A中没有对应的数据



       

      

0 0
原创粉丝点击