zoukankan      html  css  js  c++  java
  • SQLServer学习(多表连接查询)(四)

    (1)双表内部连接查询

     ①在where中指定内部连接的条件(这种写法使用的很少)

    SELECT WorkNo,Name,DeptName,SignImg
    FROM S_A_User,S_A_UserImg
    WHERE S_A_User.ID=S_A_UserImg.UserID
    ORDER BY DeptName,Name

    ②在from中指定内部连接的条件(推荐使用)

    SELECT WorkNo,Name,DeptName,SignImg
    FROM S_A_User INNER JOIN S_A_UserImg on S_A_User.ID=S_A_UserImg.UserID
    ORDER BY DeptName DESC,Name

    总结:

    (2)多表连接查询

     ③对表定义别名进行查询

    使用方法:在表名后面空格 然后写上别名即可,注意:使用了别名就不能再使用原表名

    SELECT u.WorkNo,u.Name,u.DeptName,r.Name
    FROM S_A_User u INNER JOIN S_A__RoleUser ru ON ru.UserID=u.ID INNER JOIN S_A_Role r on r.ID=ru.RoleID

     根据用户表、用户角色表、角色表查出所有用户的角色

     (3)外部连接查询

     

     ①左外连接查询:是将最左侧的表作为主表,而右侧的表作为从表,主表的所有记录都会显示出来,而从表只有匹配到主表的记录才会显示出来,没有记录的字段值显示为null;

    写法:其实就是将inner join中的inner 换成left (注意:在某些数据库中,left join 也写成 left outer join)

    SELECT u.Name,u.WorkNo,ui.SignImg
    FROM S_A_User u LEFT JOIN S_A_UserImg ui ON u.ID=ui.UserID

    ②右外连接

    SELECT u.NAME,u.WorkNo,ui.UserID
    FROM S_A_User u RIGHT JOIN S_A_UserImg ui ON u.ID=ui.UserID

    ③完全外连接:两张表都是主表,全部的数据都显示出来

    SELECT u.NAME,u.WorkNo,ui.UserID
    FROM S_A_User u FULL JOIN S_A_UserImg ui ON u.ID=ui.UserID

    ④交叉连接:

    SELECT u.NAME,u.WorkNo,ui.UserID
    FROM S_A_User u CROSS JOIN S_A_UserImg ui

    总结:

    备注:SQL中各种连接的用法:https://www.cnblogs.com/jepson6669/p/9425491.html

    End

  • 相关阅读:
    pycharm安装,svn使用,远程开发调试,接口测试,连接服务器
    scrapy回调函数传递参数
    python发送邮件
    python开发部署时新增数据库中表的方法
    python更新数据库脚本三种方法
    python中json.loads,dumps,jsonify使用
    chmod 命令
    find
    find 命令
    locate 命令
  • 原文地址:https://www.cnblogs.com/LeeSki/p/12303907.html
Copyright © 2011-2022 走看看