Sql连表查询

Sql连表查询

1.Union:使用union是组合两张表,消去表中重复行,两张表查询的结果有相同数量的列、列类型相似;UNION ALL,不消除重复行
教师表:

ID Name
101 Mrs Lee
102 Lucy

学生表:

ID Name Age City MajorID
101 Tom 20 BeiJing 10
102 Lucy 18 ShangHai 11

SELECT Name FROM Students
UNION ALL
SELECT Name FROM Teachers
结果是:

ID Name
101 Tom
102 Lucy
101 Mrs Lee
102 Lucy

2.INNER JOIN(内连接):内连接,只查匹配行
Majors表:

ID Name
10 English
12 Computer

实例:查询学生信息,包括ID,姓名、专业名称
SELECT Students.ID,Students.Name,Majors.Name AS MajorName
FROM Students INNER JOIN Majors
ON Students.MajorID = Majors.ID
查询结果:

ID Name MajorName
101 Tom English

3.外连接 :左外连接、右外连接和全外连接,对应LEFT/RIGHT/FULL OUTER JOIN
重点:至少有一方保留全集,没有匹配行用NULL代替
1)LEFT OUTER JOIN:结果集保留左表的所有行,但只包含第二个表与第一表匹配的行。第二个表相应的空行被放入NULL值
SELECT Students.ID,Students.Name,Majors.Name AS MajorName
FROM Students LEFT JOIN Majors
ON Students.MajorID = Majors.ID
结果:

ID Name MajorName
101 Tom English
102 Lucy NULL

2)RIGHT OUTER JOIN:右外连接保留了第二个表的所有行,但只包含第一个表与第二个表匹配的行。第一个表相应空行被入NULL值
SELECT Students.ID,Students.Name,Majors.Name AS MajorName
FROM Students RIGHT JOIN Majors
ON Students.MajorID = Majors.ID
结果:

ID Name MajorName
101 Tom English
Null NULL Computer

3)FULL OUTER JOIN:把两个表所有的行都显示在结果表中
SELECT Students.ID,Students.Name,Majors.Name AS MajorName
FROM Students FULL JOIN Majors
ON Students.MajorID = Majors.ID
结果:

ID Name MajorName
101 Tom English
102 Lucy NULL
NULL NULL Computer

转载于:https://blog.51cto.com/11055592/2133588

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101588.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • windows10下关闭端口占用[通俗易懂]

    windows10下关闭端口占用[通俗易懂]windows10下关闭端口占用windows10下关闭端口占用占用查询端口的pid查询关闭对应pid很少用windows,但是本地开发一直都是windows系统,如果端口发生意外,没有被关闭,如下可解决。占用查询端口的pid查询C:\Users\helloworld>netstat-ano|findstr"9097"TCP0.0.0….

    2022年7月20日
  • 用opencv的dnn模块做yolov5目标检测[通俗易懂]

    用opencv的dnn模块做yolov5目标检测[通俗易懂]最近在微信公众号里看到多篇讲解yolov5在openvino部署做目标检测文章,但是没看到过用opencv的dnn模块做yolov5目标检测的。于是,我就想着编写一套用opencv的dnn模块做yolov5目标检测的程序。在编写这套程序时,遇到的bug和解决办法,在这篇文章里讲述一下。在yolov5之前的yolov3和yolov4的官方代码都是基于darknet框架的实现的,因此opencv的dnn模块做目标检测时,读取的是.cfg和.weight文件,那时候编写程序很顺畅,没有遇到bug。但是yolo

    2022年10月13日
  • sql2008“备份集中的数据库备份与现有的xx数据库不同”解决方法[通俗易懂]

    sql2008“备份集中的数据库备份与现有的xx数据库不同”解决方法[通俗易懂]原文链接:http://www.cnblogs.com/huangfr/archive/2012/08/09/2629687.html1.因为是在另一台电脑对同名数据库做的备份,用常规方法还原,提示不是相同数据库,不让还原,在网上找到下面的方法解决了:一、右击系统数据库master,新建查询执行以下SQL代码:RESTOREDATABASExxxFROMDI

    2022年6月6日
  • 国密算法概述_国密算法一定要通过硬件吗

    国密算法概述_国密算法一定要通过硬件吗国密即国家密码局认定的国产密码算法,即商用密码。国密算法是国家密码局制定标准的一系列算法。其中包括了对称加密算法,椭圆曲线非对称加密算法,杂凑算法。具体包括SM1,SM2,SM3等,其中:SM2为国家密码管理局公布的公钥算法,其加密强度为256位。其它几个重要的商用密码算法包括:SM1,对称加密算法,加密强度为128位,采用硬件实现;SM3,密码杂凑算法,杂凑值长度为32字节,和SM2算…

    2022年10月7日
  • MVC Code First (代码优先)

    MVC Code First (代码优先)

    2022年1月13日
  • Java安全之Commons Collections1分析前置知识

    Java安全之CommonsCollections1分析前置知识0x00前言CommonsCollections的利用链也被称为cc链,在学习反序列化漏洞必不可少的一个部分。ApacheC

    2021年12月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号