zoukankan      html  css  js  c++  java
  • SQL连接查询

    一、内连接

      等值连接

    SELECT * FROM Student AS s INNER JOIN Class AS c ON c.ClassID = s.ClassID
    1    张三    19    1    1    班级1
    2    李四    18    1    1    班级1
    3    王五    16    2    2    班级2
    3    王五    16    2    2    班级2

      不等值连接

    SELECT * FROM Student AS s INNER JOIN Class AS c ON c.ClassID != s.ClassID
    1    张三    19    1    2    班级2
    1    张三    19    1    3    班级3
    1    张三    19    1    4    班级4
    1    张三    19    1    5    班级5
    1    张三    19    1    2    班级2
    2    李四    18    1    2    班级2
    2    李四    18    1    3    班级3
    2    李四    18    1    4    班级4
    2    李四    18    1    5    班级5
    2    李四    18    1    2    班级2
    3    王五    16    2    1    班级1
    3    王五    16    2    3    班级3
    3    王五    16    2    4    班级4
    3    王五    16    2    5    班级5
    4    啦啦    20    7    1    班级1
    4    啦啦    20    7    2    班级2
    4    啦啦    20    7    3    班级3
    4    啦啦    20    7    4    班级4
    4    啦啦    20    7    5    班级5
    4    啦啦    20    7    2    班级2

      自然连接

    SELECT * FROM Student AS s ,Class AS c WHERE c.ClassID=s.ClassID
    1    张三    19    1    1    班级1
    2    李四    18    1    1    班级1
    3    王五    16    2    2    班级2
    3    王五    16    2    2    班级2

    二、外连接

      左外连接

    SELECT * FROM Class AS c LEFT JOIN Student AS s ON s.ClassID = c.ClassID
    1    班级1    1    张三    19    1
    1    班级1    2    李四    18    1
    2    班级2    3    王五    16    2
    3    班级3    NULL    NULL    NULL    NULL
    4    班级4    NULL    NULL    NULL    NULL
    5    班级5    NULL    NULL    NULL    NULL
    2    班级2    3    王五    16    2

      右外连接

    SELECT * FROM Class AS c RIGHT JOIN Student AS s ON s.ClassID = c.ClassID
    1    班级1    1    张三    19    1
    1    班级1    2    李四    18    1
    2    班级2    3    王五    16    2
    2    班级2    3    王五    16    2
    NULL    NULL    4    啦啦    20    7

      全外连接

    SELECT * FROM Class AS c FULL JOIN Student AS s ON s.ClassID = c.ClassID
    1    班级1    1    张三    19    1
    1    班级1    2    李四    18    1
    2    班级2    3    王五    16    2
    3    班级3    NULL    NULL    NULL    NULL
    4    班级4    NULL    NULL    NULL    NULL
    5    班级5    NULL    NULL    NULL    NULL
    2    班级2    3    王五    16    2
    NULL    NULL    4    啦啦    20    7

    三、交叉连接

       CROSS JOIN  后面不能用ON过滤,可以用WHERE 

    SELECT * FROM Class AS c CROSS JOIN Student AS s
    1    班级1    1    张三    19    1
    2    班级2    1    张三    19    1
    3    班级3    1    张三    19    1
    4    班级4    1    张三    19    1
    5    班级5    1    张三    19    1
    2    班级2    1    张三    19    1
    1    班级1    2    李四    18    1
    2    班级2    2    李四    18    1
    3    班级3    2    李四    18    1
    4    班级4    2    李四    18    1
    5    班级5    2    李四    18    1
    2    班级2    2    李四    18    1
    1    班级1    3    王五    16    2
    2    班级2    3    王五    16    2
    3    班级3    3    王五    16    2
    4    班级4    3    王五    16    2
    5    班级5    3    王五    16    2
    2    班级2    3    王五    16    2
    1    班级1    4    啦啦    20    7
    2    班级2    4    啦啦    20    7
    3    班级3    4    啦啦    20    7
    4    班级4    4    啦啦    20    7
    5    班级5    4    啦啦    20    7
    2    班级2    4    啦啦    20    7
    View Code

     数据库脚本下载

  • 相关阅读:
    弄清变量名字空间
    Perl中文编码的处理
    了解魔符的含义
    Log::Minimal 小型可定制的log模块
    Perl – 文件测试操作符
    在源代码中使用Unicode字符
    editplus乱码charset的奇怪问题
    ASP.NET程序中常用代码汇总(一)
    ASP.NET程序中常用代码汇总(三)
    ASP.NET程序中常用代码汇总(二)
  • 原文地址:https://www.cnblogs.com/wudequn/p/7090832.html
Copyright © 2011-2022 走看看