使用左、右、全、内连接及使用where条件语句的区别

2023-10-27


使用左、右、全、内连接及使用 where 条件语句的区别
从学SQL语句到现在,从来没有使用过左右连接,也许会有人感到惊讶,但是确实是没有,因为我一直是使用的WHERE条件语句。我也想试一下效果,今天做了一下测试, 终于知道 WHERE 条件就只能够做到连接中的内连接功能,因为它不可能把不满足条件的语句显示出来,不过,在大多数的生活实例中肯定是存在的,就像一个人的编号还存在,但是这个人的信息已经被删除掉了,这个编号已经没有实在意义了。
数据库:SQL SERVER 2000
建立任意数据库,并建立表:
create table t1(id int,name varchar(50),teacher int)
create table t2(id int,name varchar(50))
insert into t1 values(1,'aa',1)
insert into t1 values(2,'bb',2)
insert into t1 values(3,'cc',2)
insert into t1 values(4,'aa',3)
insert into t2 values(1,'张老师')
insert into t2 values(2,'王老师')
insert into t2 values(4,'冯老师')
1、分别使用左连接、右连接、全连接得如下结果:
左连接:select * from t1 left join t2 on t1.teacher=t2.id
右连接:select * from t1 right join t2 on t1.teacher=t2.id
内连接:
select * from t1 inner join t2 on t1.teacher=t2.id
select * from t1 join t2 on t1.teacher=t2.id (默认为inner)
全连接:select * from t1 full join t2 on t1.teacher=t2.id
2、使用WHERE条件进行连接查询:
select t1.*,t2.* from t1,t2 where t1.teacher=t2.id
WHERE无法得到左、右、全连接的效果。
转自
使用左、右、全、内连接及使用where条件语句的区别
从学SQL语句到现在,从来没有使用过左右连接,也许会有人感到惊讶,但是确实是没有,因为我一直是使用的WHERE条件语句。我也想试一下效果,今天做了一下测试, 终于知道 WHERE 条件就只能够做到连接中的内连接功能,因为它不可能把不满足条件的语句显示出来,不过,在大多数的生活实例中肯定是存在的,就像一个人的编号还存在,但是这个人的信息已经被删除掉了,这个编号已经没有实在意义了。
数据库:SQL SERVER 2000
建立任意数据库,并建立表:
create table t1(id int,name varchar(50),teacher int)
create table t2(id int,name varchar(50))
insert into t1 values(1,'aa',1)
insert into t1 values(2,'bb',2)
insert into t1 values(3,'cc',2)
insert into t1 values(4,'aa',3)
insert into t2 values(1,'张老师')
insert into t2 values(2,'王老师')
insert into t2 values(4,'冯老师')
1、分别使用左连接、右连接、全连接得如下结果:
左连接:select * from t1 left join t2 on t1.teacher=t2.id
右连接:select * from t1 right join t2 on t1.teacher=t2.id
内连接:
select * from t1 inner join t2 on t1.teacher=t2.id
select * from t1 join t2 on t1.teacher=t2.id (默认为inner)
全连接:select * from t1 full join t2 on t1.teacher=t2.id
2、使用WHERE条件进行连接查询:
select t1.*,t2.* from t1,t2 where t1.teacher=t2.id
WHERE无法得到左、右、全连接的效果。

转自 http://blog.csdn.net/fenglibing/article/details/1839889
使用左、右、全、内连接及使用where条件语句的区别
从学SQL语句到现在,从来没有使用过左右连接,也许会有人感到惊讶,但是确实是没有,因为我一直是使用的WHERE条件语句。我也想试一下效果,今天做了一下测试, 终于知道 WHERE 条件就只能够做到连接中的内连接功能,因为它不可能把不满足条件的语句显示出来,不过,在大多数的生活实例中肯定是存在的,就像一个人的编号还存在,但是这个人的信息已经被删除掉了,这个编号已经没有实在意义了。
数据库:SQL SERVER 2000
建立任意数据库,并建立表:
create table t1(id int,name varchar(50),teacher int)
create table t2(id int,name varchar(50))
insert into t1 values(1,'aa',1)
insert into t1 values(2,'bb',2)
insert into t1 values(3,'cc',2)
insert into t1 values(4,'aa',3)
insert into t2 values(1,'张老师')
insert into t2 values(2,'王老师')
insert into t2 values(4,'冯老师')
1、分别使用左连接、右连接、全连接得如下结果:
左连接:select * from t1 left join t2 on t1.teacher=t2.id
右连接:select * from t1 right join t2 on t1.teacher=t2.id
内连接:
select * from t1 inner join t2 on t1.teacher=t2.id
select * from t1 join t2 on t1.teacher=t2.id (默认为inner)
全连接:select * from t1 full join t2 on t1.teacher=t2.id
2、使用WHERE条件进行连接查询:
select t1.*,t2.* from t1,t2 where t1.teacher=t2.id
WHERE无法得到左、右、全连接的效果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用左、右、全、内连接及使用where条件语句的区别 的相关文章

  • 如何对Oracle进行SQL注入

    我正在对一个系统进行审计 开发人员坚称该系统可以防止 SQL 注入 他们通过去掉登录表单中的单引号来实现这一点 但后面的代码没有参数化 它仍然使用字面 SQL 如下所示 username username Replace var sql s
  • 从 Oracle Varchar2 中查找并删除非 ASCII 字符

    我们目前正在将一个 Oracle 数据库迁移到 UTF8 并且发现一些记录接近 4000 字节 varchar 限制 当我们尝试迁移这些记录时 它们会失败 因为它们包含的字符变成了多字节 UF8 字符 我想要在 PL SQL 中做的是找到这
  • 仅使用 SQL 中的 MAX 函数更新重复行

    我有一张这样的桌子 假设为了举例 NAME是一个唯一的标识符 NAME AGE VALUE Jack Under 65 3 Jack 66 74 5 John 66 74 7 John Over 75 9 Gill 25 35 11 Som
  • 使用 SYS_CONNECT_BY_PATH 的 Oracle 累积计数

    当我尝试对实际数据执行以下查询时 它返回了更多记录数 请帮助解决这个问题 下面是表 DM TEMP SUMMING DVC BY FW 中的实际数据 device count dmc id firmware version cg id im
  • 在 BEFORE INSERT 触发器中使用 IF EXISTS (SELECT ...) (Oracle)

    我的代码不起作用 Oracle 告诉我创建触发器时出现构建错误 显然我无法获得有关构建错误的更准确信息 我以前确实没有做过很多SQL 所以我对语法不太熟悉 我有一种预感 Oracle 不喜欢我的 IF EXISTS SELECT THEN
  • sqlldr.exe 不适用于 Windows 10

    我最近通过自定义安装安装了 Oracle 数据库客户端 12 1 0 2 0 winx64 并仅选择包括 SQL Loader 等在内的数据库实用程序 但是当我尝试执行 sqlldr exe 时 出现以下错误 在网上搜索后 我从所有站点 即
  • Oracle Blob 在 PHP 页面中作为 img src

    我有一个网站当前使用文件服务器上的图像 这些图像显示在页面上 用户可以根据需要拖放每个图像 这是使用 jQuery 完成的 图像包含在列表中 每张图片都非常标准 img src network path image png height 8
  • PLS-00103:遇到符号“;”当预期出现以下情况之一时:

    我正在尝试插入用户安全问题的答案 以用于密码重置功能 Ellucian 横幅 v8 提供了一个用于运行此 API 的 API 我对他们的 API 非常陌生 从下面的错误消息来看 我还远远没有正确运行它 任何帮助表示赞赏 我尝试在 Oracl
  • Oracle 按月滚动或运行总计

    目标 每个月末所有报表的滚动 运行总计 Code select TRUNC ACTHX STMT HX STMT DATE MM AS MNTH COUNT ACTHX INVOICE as STMTS from ACTHX group b
  • 使用 Hibernate 将 Oracle 日期映射到 Java 对象

    我收到消息 文字与格式字符串不匹配 例如 以下是 Java 类中的一些方法 public String getDateTime public void setDateTime String date time 以下是该类的 Hibernat
  • 如何更新 pl/sql 中嵌套表的列? [复制]

    这个问题在这里已经有答案了 我正在尝试在表中创建一个可以存储多个值的列 如下所示 我有一个学生id std和一个名为marks可以采用几个值 例如2 3 4 我想更新此列表以添加另一个标记2 3 4 5但我不知道怎么做 我如何更新专栏mar
  • 如何使用 Oracle 移动文本文件

    我有两个问题 1 如何从文件夹中移动文本文件 C Data inbox test txt 目标文件夹 C Data outbox test txt 2 如何获取文件夹中的目录文件列表 C Data inbox 谢谢 Oracle 提供了一个
  • Oracle SQL 函数中可以有 commit 语句吗

    在 SQL 函数中使用 COMMIT 语句是否可能 有意义 从技术上来说 答案是肯定的 你can请执行下列操作 create or replace function committest return number as begin upd
  • oracle ExecuteNonQuery 在 ASP.Net 上冻结

    我正在尝试使用 ASP C 和 CLR 4 5 中的 Oracle 连接来运行非查询 这是我的代码 string connectionString ConfigurationManager ConnectionStrings OracleC
  • Oracle 中的 Json_object 返回 ORA-00907: 缺少右括号

    我正在尝试将 Oracle 表数据转换为 JSON 文件 我有三个数据库 下面的代码在一个数据库中以 JSON 文件形式提供输出 但其他两个数据库抛出ORA 00907 missing right parenthesis error 从语法
  • 没有提示指令的直连接中表的顺序是否会影响性能?

    所有基于 SQL 的 RDBMS 10 年前的版本 直接连接查询 没有提示指令 中的表顺序是否会对最佳性能和内存管理产生影响 听说最后一个join应该是最大的表 您的数据库的查询优化器如何处理这种情况 回答你的问题 是的 表的顺序在连接中有
  • 存储过程错误 PLS-00201:必须声明标识符“UTL_HTTP”

    我正在尝试创建一个从服务请求一些 XML 数据的存储过程 我在网上找到了几个示例 它们都指向使用这个 UTL HTTP 包 但是 每次我尝试用它来编译我的存储过程时 我都会收到错误 PLS 00201 identifier UTL HTTP
  • SQL查询json字典数据

    我的表中的 CLOB 字段包含 JSON 如下所示 a value1 b value2 c value3 我正在尝试编写一个 SQL 查询来返回一个包含键和值字段的表 如下所示 key value a value1 b value2 c v
  • 如何使用非标准的一周第一天在 Oracle 中计算一年中的第几周?

    我有一个查询需要返回日期字段的 一年中的第几周 但查询的客户使用非标准的一周第一天 所以TO CHAR with IW 没有返回预期的结果 在这种情况下 一周的第一天是周六 周五是一周的第七天 对于 T SQL 我会使用DATEPART a
  • Oracle REGEXP_INSTR() 和“a-z”字符范围与预期不匹配

    我想用REGEXP INSTR 在 oracle 数据库中检查小写 大写字符 我知道 upper and lower POSIX 字符类 但我选择了a z这给了我非常奇怪的结果 我不明白 有人可以解释一下吗 SELECT REGEXP IN

随机推荐

  • python学习—第一步—聪明方法学python

    目录 学习参考资料 遇到的一些小问题 python环境配置与基本语法 python安装与vscode绑定 python常量与变量 常量 变量 python运算符与函数 运算符 函数 局部变量与全局变量 控制流 python数据结构 序列Li
  • Tm4c123GX(tiva)入门详细教程

    TM4C123GX系列 学了几个月的Tiva 总的来说这个款单片机功能还是比较强大的 下面我将以TM4C123GH6PM为例介绍其基本资源及工程建立 点亮板卡上的LED灯以及对基本的时钟配置 PWM uart Timer等方面来做简要说明
  • 使用R语言操作数据框时,我们经常需要创建新的数据列来进行进一步的分析和处理。在本文中,我们将介绍如何通过加和两个数据列来创建一个新的数据列。

    使用R语言操作数据框时 我们经常需要创建新的数据列来进行进一步的分析和处理 在本文中 我们将介绍如何通过加和两个数据列来创建一个新的数据列 要创建新的数据列 我们可以使用mutate 函数以及数据框中的两个已有的数据列 假设我们有一个数据框
  • Vulkan SDK 中的 demo 编译配置 win10 vs2019

    一 下载安装 开始可以简装 然后在打开maintenancetool exe进一步安装其他部件 下载安装 Vulkan SDK Vulkan SDK What s in the SDK Where to Download 会在安装目录中找到
  • 减小内存的占用问题——享元模式和单例模式的对比分析

    前言 接口的常用用法都有什么 策略模式复习总结 的话题提起了 如何解决策略类膨胀的问题 说到 有时候可以通过把依赖于环境Context类的状态保存到客户端里面 而将策略类设计成可共享的 这样策略类实例可以被不同客户端使用 换言之 可以使用享
  • 【前端是什么】

    前端是什么 文章目录 前端是什么 1 前端的概念 2 前端的分类 3 前端的工作流程 4 互联网企业的典型组织结构图 1 前端的概念 1 1 前端的定义 对于网站来说 通常是指网站的前台部分 包括网站的表现层和结构层 通俗点就是用户可以看到
  • 关于STM32的IAP超详细图文解说

    IAP是In Application Programming的首字母缩写 IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写 目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级 以上是IA
  • 【Linux网络编程】传输层udp协议篇

    udp协议篇 一 本篇是在应用篇的后面的 二 传输层 2 1 再谈端口号 2 2 1 两个问题 2 2 2 两个常用命令 2 2 UDP协议 2 2 1 udp协议端格式 理解报头 2 2 2 udp的特点 2 2 3 udp的缓冲区 2
  • JAVASCRIPT this关键字详解

    this指向哪里 一般而言 this指向函数执行时的当前对象 In JavaScript as in most object oriented programming languages this is a special keyword
  • UTF-8转换成GB2312的全处理

    主题 将UTF 8编码的字符串转化成GB2312的编码 没有对应编码的字符串转化为 DEC 的格式 如 gt 54924 语言 PHP Javascript 内容 浏览器用Javascript中encodeURI函数将字符串 包含非GB23
  • 蓝桥杯C++组怒刷50道真题(填空题)

    深夜伤感网抑云 南辰Music 御小兮 单曲 网易云音乐 多年后再见你 乔洋 周林枫 单曲 网易云音乐 填空题25题完结 等23年题目出来了会补充 下一步就是编程题了 24年蓝桥杯之前 一定会给大家精心准备几个博客 目录 填空题 一 蓝桥杯
  • OSPF和RIP

    OSPF协议 劢态路由协议 通过在路由器上运行劢态路由协议 在路由器乊间交互路由信息 学习路由信 息最织生成路由转収表项 常见的劢态路由协议 RIP OSPF ISIS EIGRP BGP 劢态路由协议适用场合 路由器数量较夗 网段数量较夗
  • 找出一个无序数组的中位数

    要解决这个问题首先要了解什仫是中位数 所谓的中位数就是在一组有序的数字中找到中间的那个数字 如果数字的个数是奇数则直接返回中间的那个数 如果数字的个数是偶数此时这组数据的中位数有两个 取中间两个数的平均值即可 想法一 不论用什仫排序算法使得
  • flutter android 和 ios 发布

    android篇 keytool genkey v alias android keyalg RSA validity 20000 keystore Users 当前用户的用户名 android keystore keytool genke
  • Web学习之JavaScript

    文章目录 一 什么是JavaScript 二 JavaScript 用法 三 Chrome 浏览器中执行 JavaScript 四 JavaScript 语法 五 JavaScript 语句 六 JavaScript 函数 七 JavaSc
  • 【redis】单机安装部署redis7.0版本

    下面我以redis 7 0 5版本 来进行讲解 链接 https pan baidu com s 1FesU8iHJQyW4pVARIqeQAA 提取码 qtqc 单机安装Redis 1 首先需要安装Redis所需要的依赖 yum inst
  • 预测知识

    预测知识 预测技术流程及模型评价 目录 预测知识 预测技术流程及模型评价 神经网络 机器学习 深度学习 参考资料 神经网络 神经网络 neural network 是机器学习的一个重要分支 也是深度学习的核心算法 神经网络的名字和结构 源自
  • 上传图片几种方式解析(上)--file

    浏览器上传图片到服务器时通过input type file 以及onchange事件的配合实现的 element和vant的ui库的图片上传都是基于这个 input的files属性 1 众所周知 一级dom事件不同于addeventlisn
  • c语言三目运算符的一些小细节,赋值不改变变量的值

    C语言三目运算符的一些小细节 赋值不改变变量的值 今天无聊翻翻C语言的课本 看到三目运算符的时候 心想这个和if else 语句用法一样 突然脑海里浮现一个想法 三目运算符结构 表达式1 表达式2 表达式3 表达式1 为逻辑表达式 如果为真
  • 使用左、右、全、内连接及使用where条件语句的区别

    使用左 右 全 内连接及使用 where 条件语句的区别 从学SQL语句到现在 从来没有使用过左右连接 也许会有人感到惊讶 但是确实是没有 因为我一直是使用的WHERE条件语句 我也想试一下效果 今天做了一下测试 终于知道 WHERE 条件