• 联合


    1.内部联合

    • 等值联合与不等值联合
    • 多个联合与多个条件
    • 交叉联合
    • 自联合

    交叉联合:

    不存在ON子句,将列举出所有表中的所有记录行。结果集是两个表的笛卡尔积:一个表中的所有行组合另一个表中的所有行。

    select category,street from category cross join location order by street;

    自联合:

    select MD1.MemberId,MD1.Firstname,MD1.lastname,MD2.memberid,MD2.firstname,MD2.lastname,MD1.ZIPCODE,MD2.zipcode,MD1.street,MD2.street from MemberDetails as MD1 inner join MemberDetails as MD2 on MD1.street=MD2.Street and MD1.ZipCode=MD2.ZipCode and MD1.MemberId<MD2.MemberId;    --找到2个住址完全一样的人

    2.外部联合

    内部联合要求包含在联合中的两个表必须具有匹配的记录,ON子句的条件必须为真。

    外部联合不需要两个表具有匹配记录,可以指定一个表总是返回结果,无论ON子句的条件是否为真,结果仍然服从任何where子句的过滤效果。

    (1)左外部联合

    outer join左边表中的所有记录都被返回在结果中。

    --返回一个关于所有电影类型及其相应的电影的一个表。即使没有电影的电影类也要列举出来。
    select category,filmname from category left outer join films on category.Categoryid=films.CategoryId;

    select location.Street,MemberDetails.Street from location left outer join MemberDetails on Location.Street=MemberDetails.Street;

    (2)右外部联合

    outer join右边表中的所有记录都被返回在结果中。和左外部联合不存在功能上的差异。

    select location.Street,MemberDetails.Street from location right outer join MemberDetails on Location.Street=MemberDetails.Street;

    (3)完全外部联合

    左外部联合和右外部联合的组合。返回左右两个表中的全部记录,当在另一个表中不存在匹配记录时,将返回一个NULL值。

    select location.Street,MemberDetails.Street from location full outer join MemberDetails on Location.Street=MemberDetails.Street;

    3.UNION的使用

    将2个或多个select查询结果联合到一个结果集中。每个查询必须产生相同的列,列的数据类型必须相同,列的数据类型和顺序必须匹配。

    默认情况下,UNION运算符合并了两个查询,但是仅仅包含不重复的记录,若要返回所有的记录,不管是否唯一,则需要使用ALL语句。

    可以用ORDER BY 来排序结果。但是仅能添加一个ORDER BY子句,并且只可以使用第一个SELECT语句中的列名,但是会对整个查询结果排序。ORDER BY子句放在最后。

    select filmname,yearreleased from films
    union all
    select lastname,year(dateofbirth) from MemberDetails
    union all
    select city,null from location
    order by filmname;

  • 相关阅读:
    ALINK(三):PYALINK 以及ALINK 任务运行(本地模式与集群模式)
    ALINK(二):使用 Maven 快速构建 Alink 项目(JAVA开发环境)
    ALINK(一):PYALINK安装(win10)
    leetcode算法题基础(四十八) 分治法总结(三)
    leetcode算法题基础(四十七) 分治法总结(二)
    leetcode算法题基础(四十六) 分治法总结(一)
    数据挖掘实践(54):xgboost 推导与实例
    office2016word 每次打开都有进度条问题 解决方式
    odoo 之报date<form string=''product lc''> 错误
    乌班图 输入法无效问题 即退出输入法
  • 原文地址:https://www.cnblogs.com/wy1290939507/p/4532059.html
Copyright © 2020-2023  润新知