• mySQL联接


    为什么要用联接

    我们可以使用子查询帮助进行多表查询,但它有时候并不能给我们所需要的一切,而且不断嵌套的子查询显得语法有些杂乱,特别是相关子查询更会严重影响性能。那么如何更好地解决多表查询所存在的问题呢,SQL为我们提供了一种更简单的语法,那就是联接。

    内联接

    内联接是一种典型的联接运算,使用像=或者<>之类的比较运算符。包括相等联接、非相等联接和自然联接,是使用比较运算符根据每个表共有的列的值匹配两个表中的行。比如select e.eName,d.dName from emp e (inner)join dept d on e.deptNo=d.deptNo;这句话就是将员工表emp和部门表dept根据相等的部门编号depNo进行内联接,并查找出员工名和部门名字,括号表示可以省略的关键字。

    外联接

    1、左外联接(left join 或left outer join):左向外联接的结果包括left outer 子句中指定左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集
    行中右表的所有选择列表均为空值。比如select e.eName,d.dName from emp e left join dept d on e.deptNo=d.deptNo;这时,在员工表emp中有一个员工‘zhangsan’还没分配部门,但任然会显示出该行,但在部门名字depName一列则显示为空。

    2、右外联接(right join 或 right outer join):右向外联接是左向外联接的反向联接,与左外联接刚好相反,右表的某行在左表中没有匹配行,则将为左表返回空值。比如select e.eName,d.dName from emp e RIGHT join dept d on e.deptNo=d.deptNo;这时,部门表dept中有一个部门‘research’还没有员工,但仍然会显示该行,但在员工名eName一列会显示为空,但没有部门的‘zhangsan’则不会被显示出来。

    3、全外联接(full join 或 full outer join):全外联接返回左表和右表中的所有行,是左外联接和右外联接的结合,但在mysql中不支持。

  • 相关阅读:
    【android】手机增加一个新的实体按键
    python自动化错误解决方法
    java.lang.IllegalArgumentException: Buffer size too small. size = 262144 needed = 2205991
    50个开发工具
    mysql 查询json串
    软考题目单选题目
    软考操作系统基础知识
    使用DM将mysql具体表同步到tidb
    python日期处理
    安装部署dm
  • 原文地址:https://www.cnblogs.com/quanby/p/5484275.html
Copyright © 2020-2023  润新知