数据库内连接、左外连接、右外连接中的on、and、where条件使用

2023-11-16

数据库各种连接方式的on、and、where条件使用


前言

内连接:只保留满足on条件的数据,剔除不匹配的数据

左外连接:无论on中的条件满不满足,都保留左表所有数据

右外连接:无论on中条件满不满足,都保留右表的所有数据

全外连接:无论on中条件满不满足,都保留所有表的所有数据

表A

表A

表B

表B

使用on条件,A为主表

select a.*,b.* from a left join b on a.id=b.id;

注:关联多条,从表有重复数据,一般不去重,显示出A表全部数据,005关联两次

结果如下:

在这里插入图片描述

使用on条件,B为主表

select a.*,b.* from b left join a on a.id=b.id;

注:显示出B表全部数据

结果如下:

在这里插入图片描述

使用on、and主表条件

select a.*,b.* from a left join b on a.id=b.id and a.type=1;

注:以左表全匹配进行连接,之后用and筛选,不符合and条件的数据左表保留,右表为null,B表只显示001、002的数据

结果如下:

在这里插入图片描述

使用on、where主表条件

select a.*,b.* from a left join b on a.id=b.id where a.type=1;

注:先走on条件,在过滤出type=1的数据,on关联时用,where结果集过滤时用

结果如下:

在这里插入图片描述

使用on、and条件,a.type<>1

select a.*,b.* from a left join b on a.id=b.id and a.type<>1;

注:a.type<>1,type字段不等于1,空值不参与运算,查询出A表全部,B表005存在两条,关联的A表type不等于1的数据

结果如下:

在这里插入图片描述

使用on、where条件,a.type<>1

select a.*,b.* from a left join b on a.id=b.id where a.type<>1;

注:a.type<>1,type字段不等于1,空值不参与运算,type不为1,A表有003、005、005,因为005从表B有两条,所以005显示两条,共四条数据

结果如下:

在这里插入图片描述

使用on、and从表条件

select a.*,b.* from a left join b on a.id=b.id and b.card=1111;

注:从表B,005不关联,因为005的card不为1111,所以从表B只显示一条card等于1111的数据

结果如下:

在这里插入图片描述

使用on、where从表条件

select a.*,b.* from a left join b on a.id=b.id where b.card=1111;

结果如下:

在这里插入图片描述

使用on、and从表条件,从表Bcard<>1111

select a.*,b.* from a left join b on a.id=b.id and b.card<>1111;

注:从表B005有两条,但因为005有一条card的值为空,不参与计算,所以005只有一条数据在右侧显示

结果如下:

在这里插入图片描述

使用on、where条件,从表Bcard<>1111

select a.*,b.* from a left join b on a.id=b.id where b.card<>1111;

结果如下:

在这里插入图片描述

inner内链接,使用on、and条件

select a.*,b.* from a inner join b on a.id=b.id and a.type=1;

注:inner返回共有的,join和inner join中的where和and的查询结果相同,都是取**链接后的结果**再进行筛选,链接后为7条数据,在筛选type=1的数据

结果如下:

在这里插入图片描述

inner内连接,使用on、where条件

select a.*,b.* from a inner join b on a.id=b.id where a.type=1;

结果如下:

在这里插入图片描述

右外连接和左外连接原理相同


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库内连接、左外连接、右外连接中的on、and、where条件使用 的相关文章

  • 课时 10 自测题

    使用存储快照功能需要用到哪些 Kubernetes API 资源对象 多选题 A VolumeSnapshot B VolumeSnapshotClass C VolumeSnapshotContent D PersistentVolume
  • C++学习 十、函数重载,函数模板

    C 学习 十 函数重载 函数模板 前言 函数重载 二义性 强制类型转换 类型与类型引用 默认参数 const指针参数和const引用参数 函数模板 模板函数声明与定义 函数模板重载 显式实例化 显式具体化 重载解析 引导编译器使用函数模板

随机推荐

  • Box layout

    Layout management with layout classes is much more flexible and practical It is the preferred way to place widgets on a
  • Vue3+TypeScript 完整项目上手教程

    转自 Vue3拥抱TypeScript的正确姿势 https juejin im post 6875713523968802829 一个完整的Vue3 Ts项目 支持 vue和 tsx写法 项目地址 https github com vin
  • Tomcat的安装与环境变量配置(图文详解)

    Tomcat的安装与环境变量配置 首先说明一下我的电脑配置 Windows 7 专业版 64位操作系统 安装内存8G 四核处理器 一 Tomcat的下载与安装 1 进入Tomcat官网 https tomcat apache org 2 在
  • soap错误码和获取处理错误码的详细信息

    gsoap页面 https www genivia com doc guide html index html soap客户端用户登录返回值错误代码表 ERROR CODE SOAP EOF 1 Unexpected end of file
  • const 在C和C++ 中的区别

    目录 c中的const C 中的const const修饰指针 const修饰引用 const是construct的缩写 是c c 语言中的类型限定符 采用const修饰变量 功能是对变量声明为只读特性 并保护变量值以防被修改 c中的con
  • 最新版Adobe2023:After Effects 2023(Ae2023) win/mac版中文特别版

    Adobe After Effects 2023 AE2023 它用于视频处理后期制作 创建音乐视频 广告 动画 标题以及许多其他需要数字视频效果的元素 Adobe After Effects提供了出色的控制功能 广泛的创意工具以及与其他视
  • 香港云服务器怎么样_硅云服务器评测

    这次我来给大家测试下香港云服务器 本次测试选用的硅云香港可用一区 使用到的配置是2H2G 官方文档介绍说通用型g1是50 cpu性能 因为想用Linux 只是做下简单评测 就选择了通用型 正式使用的朋友建议买标准型S 100 CPU性能 一
  • android studio gradle 下载失败万能解决方案

    The specified Gradle distribution https services gradle org distributions gradle 7 2 2 bin zip does not exist 报错如上 介绍个绝对
  • 飞腾平台 银河麒麟 安装nginx

    飞腾平台 银河麒麟 安装nginx 1 在 home目录输入命令新建npf文件夹 mkdir npf 进入npf 目录输入命令新建nginx server文件夹 mkdir nginx server 2 将以下安装包上传到nginx ser
  • U-boot在S3C2440上的移植详解(一)

    本文转载至 http www embeddedlinux org cn html jishuzixun 201303 16 2499 html 一 移植环境 主 机 VMWare Fedora 9 开发板 Mini2440 64MB Nan
  • 小程序开发之 wx.getUserInfo获取用户信息方案介绍

    原文链接 https www cnblogs com kenshinobiy p 9118024 html 背景 小程序一个比较重要的能力就是获取用户信息 也就是使用 wx getUserInfo 接口 我们发现几乎所有的小程序都会调用这个
  • websocket有什么特点

    websocket有什么特点 答 websocket的最大特点就是 服务器可以主动向客户端推送信息 客户端也可以主动向服务器发送信息 是真正的双向平等对话 属于服务器推送技术的一种 1 建立在tcp协议之上 服务器端的实现比较容易 2 与H
  • 多线程处理

    https www runoob com python3 python3 multithreading html import requests import threading import time import xlrd import
  • 二维数组分组,一行显示5个,适合在table里面显示,php控制显示的数据

    需求 把数据平均显示到table的显示框内 如一行5个数据 效果 方法代码 一行展示N个数据 param int type 默认1 可扩展 param int num 一行显示的个数 可设置 param arrs 二维数组 static f
  • 强化学习学习

    强化学习一些基本概念 强化学习是除了监督学习和无监督学习的第三种机器学习方法 监督学习 Supervised Learning 是从外部监督者提供的带标注训练集中进行学习 任务驱动 无监督学习 Unsupervised Learning 是
  • 003 C++基础篇

    前言 大家好 本文将会向您介绍引用 定义 使用场景 引用与值分别作为返回值和参数时的性能比较 引用的权限 引用 一 引用是什么 引用 定义一个变量的别名 不是新定义一个变量 而是给已经存在的变量取了一个别名 编译器不会为引用变量单独开辟一个
  • WPF应用程序最小化到系统托盘

    using System using System Collections Generic using System ComponentModel using System Windows using System Windows Inpu
  • Unity3D跑酷游戏开发-游戏结束分数排名当前高能显示 (原创教程)

    一般游戏结束后都会有个分数排名板 接下来让分析这功能 1 游戏结束后显示高分排列 当前玩家分数高能显示 如果能进入排名板 2 数据必须持久化 切换场景 关闭开启游戏都要能用 流程 游戏结束后 调出排名板 1 取得上次的所有排名数据保存到li
  • elasticsearch查询

    环境 es1 3 eclipse jdk1 8 问题 刚开始用游标查询 再用游标获取数据 查询耗时较慢 解决办法 不使用游标查询 直接根据条件查询 es查询参考网址 https www cnblogs com chenyuanbo p 10
  • 数据库内连接、左外连接、右外连接中的on、and、where条件使用

    数据库各种连接方式的on and where条件使用 文章目录 前言 使用on条件 A为主表 使用on条件 B为主表 使用on and主表条件 使用on where主表条件 使用on and条件 a type lt gt 1 使用on wh