在 SQL 中编写左/右 JOIN 时,您是否使用 OUTER 关键字?

2024-02-27

我经常看到有人这样写SQL:

SELECT * from TableA LEFT OUTER JOIN TableB ON (ID1=I2)

我自己简单写一下:

SELECT * from TableA LEFT JOIN TableB ON (ID1=I2)

对我来说,“OUTER”关键字就像线路噪音 - 它不添加任何附加信息,只是让 SQL 变得混乱。在我所知道的大多数 RDBMS 中,它甚至是可选的。那么...为什么人们仍然写它?这是一种习惯吗?可移植性? (无论如何,你的 SQL 真的是可移植的吗?)还有什么我不知道的吗?


OUTER正如你所写,确实是多余的,因为所有OUTER连接是LEFT or RIGHT,并且互为所有LEFT or RIGHT连接是OUTER。所以从语法上来说,正如你所说,它主要是噪音。即使在 ISO SQL 中它也是可选的。至于人们为什么使用它,我想有些人觉得有必要坚持加入OUTER,即使 left-or right 关键字已经这么说了。对于这个问题,INNER也是多余的!

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

在 SQL 中编写左/右 JOIN 时,您是否使用 OUTER 关键字? 的相关文章

  • 加密数据库字段的好方法?

    我被要求加密数据库中的各种数据库字段 问题是这些字段在读取后需要解密 我在用着Django and SQL Server 2005 有什么好主意吗 See 在 SQL Server 2005 数据库中使用对称加密 https web arc
  • 检查两个“select”是否相等

    有没有办法检查两个 非平凡的 选择是否等效 最初我希望两个选择之间有形式上的等价 但是答案在证明 sql 查询等价性 https stackoverflow com questions 56895 proving sql query equ
  • 如何搜索例程的内容/(SP-触发函数)

    我需要在数据库内所有例程的例程主体 存储过程 函数 触发器 中搜索文本 我该怎么做 Thanks SELECT OBJECT NAME object id FROM sys sql modules WHERE definition LIKE
  • JDBC插入实数数组

    我试图将一个真实的数组插入到 postgresql 数组中 该表的定义是 String sqlTable CREATE TABLE IF NOT EXISTS ccmBlock sampleId INTEGER block REAL 插入内
  • 在存储过程中验证用户的最简单方法?

    我需要一个存储过程 可以通过发送以下内容来检查登录尝试时他们是否是有效用户login and password查看它们在数据库中是否匹配 有没有一种简单的方法可以做到这一点 如果没有更多信息 我目前能提供的最好信息是 CREATE STOR
  • st_intersects 与 st_overlaps

    这两个查询有什么区别 select a gid sum length b the geom from polygons as a roads as b where st intersects a the geom b the geom gr
  • 内置函数将每个单词的第一个字母大写

    如果 SQL Server 中已存在此类函数 我不想为此创建自定义函数 输入字符串 This is my string to convert预期输出 This Is My String To Convert SET ANSI NULLS O
  • 如何识别拼写不同的相似单词

    我想从数据库中过滤掉重复的客户名称 一位客户可能有多个同名但拼写差异不大的系统条目 这是一个示例 名为 Brook 的客户可能有 3 个系统条目 有了这个变化 布鲁克 贝尔塔 布鲁克 贝尔塔 比鲁克 贝尔塔 假设我们将此名称放入一个数据库列
  • 获取带有计数的不同记录

    我有一张桌子personid and msg列 personid msg 1 msg1 2 msg2 2 msg3 3 msg4 1 msg2 我想得到总计msg对于每个personid 我正在尝试这个查询 select distinct
  • 删除数据库中的行后如何重新排序ID

    我正在使用 C 来制作具有 sql 数据库的程序 在数据库中我有一个名为Workers 它有一个自动增量和主键ID column 当我删除一条记录时 ID 之间会出现间隙 删除记录后如何重新排序 ID UPDATE 我要做的就是找到记录后将
  • SELECT max(x) 返回 null;我怎样才能让它返回0?

    运行以下命令时如何返回 0 而不是 null SELECT MAX X AS MaxX FROM tbl WHERE XID 1 假设没有XID 1的行 or SELECT coalesce MAX X 0 AS MaxX FROM tbl
  • SQL查询查找表的主键?

    我怎样才能找到哪一列首要的关键使用查询来创建表 这是重复的question https stackoverflow com questions 893874 mysql determine tables primary key dynami
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • SQL 更新 - 更新选定的行

    我正在使用 SQL Server 2008 我有一个名为MYTABLE有两列 ID STATUS 我想编写一个存储过程来返回其记录STATUS是 0 但是这个存储过程必须更新STATUS返回行数为 1 如何在单个查询中执行此选择和更新操作
  • 是否可以引用同一个表中的不同列?

    如果博客有一个 类别 表 如下所示 CREATE TABLE categories id INTEGER PRIMARY KEY AUTO INCREMENT parent id INTEGER NOT NULL name VARCHAR
  • SQL 按 IN 子句中的元素排序

    我有一个ITEM表 我想返回按 IN 子句中通知的相同顺序排序的结果 这些 ID 由用户告知 今天我有这个 SELECT FROM ITEM WHERE ITEM ID IN 45 2 671 6 ORDER BY CASE ITEM ID
  • 从逗号分隔的字符串中删除重复项 (Amazon Redshift)

    我正在使用亚马逊红移 我在该字符串中有一个列存储为逗号分隔 例如Private Private Private Private Private Private United Healthcare 我想使用删除其中的重复项query 所以结果
  • 使用 order by 和 limit 从多个表中删除

    我试图从使用 ORDER BY DESC 和 LIMIT 有关系的两个表中删除 DELETE FROM my rel table AS t1 LEFT JOIN my photo table AS t2 ON t2 typeid t1 ty
  • MySQL - 连接 a 或 b

    假设我有一个TABLE a其中一个COLUMN data是一个join其他 2 张桌子 TABLE b and TABLE c 因为我想得到一个COLUMN info in b or c 事情是a data将匹配only with b da
  • PostgreSQL 位图堆扫描索引非常慢,但仅索引扫描很快

    我创建了一个包含 43kk 行的表 并用值 1 200 填充它们 因此 表中每个数字大约为 220k create table foo id integer primary key val bigint insert into foo se

随机推荐

  • 电子邮件营销经理如何报告退回的电子邮件?

    谁能指出我如何处理捕获退回电子邮件信息的正确方向 我正在考虑编写一个电子邮件活动经理 并且希望能够报告该数据 您可以编写一个应用程序来轮询坏邮件文件夹以识别退回的电子邮件 发送电子邮件后 您应该等待一段时间 然后再检查电子邮件是否已送达或退
  • pandas数据框的条件过滤

    我有一个关于足球结果的熊猫数据框 数据帧的每一行代表一场足球比赛 每场比赛信息如下 Day WinningTeamID LosingTeamID WinningPoints LosingPoints WinningFouls 1 13 1
  • 如何输出DOM文档?

    也许我遗漏了一些东西 但是这段代码中的 DOM 对象是空的 input file get contents http www google com doc new DOMDocument doc gt loadHTML input supr
  • 如何在 MLPClassifier 中设置初始权重?

    我找不到设置神经网络初始权重的方法 有人可以告诉我如何设置吗 我正在使用 python 包 sklearn neural network MLPClassifier 这是供参考的代码 from sklearn neural network
  • JS 闭包上下文对象的生命周期?

    背景 我正在尝试移植长生不老药演员模型语言原语转换为 JS 我想出了一个解决方案 用JS 来模拟receiveelixir 关键字 使用 接收器 函数和生成器 这是一个简化的实现和演示 向您展示这个想法 APIs type ActorRef
  • 即使使用相同的密钥库,更新 apk SHA1 也会有所不同

    I have uploaded my app to Goggle Play few months back after signing it with a release keystore I have stored that Keysto
  • 检查 exec.Cmd 是否在 Go 中运行完毕

    我正在尝试检查是否exec Cmd 在跑在这些场景中 在我真正开始命令之前 命令开始之后但完成之前 命令完成后 这将允许我终止该命令 如果它正在运行 以便我可以使用不同的参数再次启动它 下面是一个简单的用例 c exec Command o
  • 网络浏览器无法打开新窗口

    我刚刚找到了一份远程工作的新工作 我必须通过打开一堆页面并登录来开始我的一天 我很想自动化这个过程 因为它可能有点乏味 我想保留我的个人浏览窗口并打开一个包含我需要的所有页面的新窗口 这是我想做的事情的要点 import webbrowse
  • iOS 8 / Safari 8 不支持 ASP.NET AJAX 扩展

    iOS 8 推出后 我们的网站突然停止运行 ASP NET UpdatePanel 内的每次回发都会导致一个空页面 如果在 Safari 8 在 Mac 上 中将用户代理设置为 Chrome 它仍然有效 我已经发现 一些 ScriptRes
  • 受歧视工会没有多余的财产检查

    给定的是受歧视的联合类型S1 S2 S3 type S1 d1 foo type S2 d1 bar isSuccess true type S3 d1 baz isSuccess false errorMessage string typ
  • Google App Engine:添加到任务队列比执行数据存储写入更快吗?

    我正在尝试通过将后台任务添加到任务队列而不是立即执行操作来优化应用程序的一些面向用户的部分 对于 CPU 密集型任务来说 这样做是一个明显的选择 但是如果只是保存数据呢 平均而言 执行 taskqueue add 操作或 db put 操作
  • 如何切换标记?

    我制作标记的代码 for var marker in markers var posMarker new google maps Marker position new google maps LatLng markers marker l
  • 重定向多个标准输入?

    我有三个文件 名为一 二 三 其中一项包含 1 3 2 两个包含 4 6 5 三包含 7 9 8 当我发出以下命令时 sort lt One lt Two lt Three 我得到输出 7 8 9 但是当我发出以下命令时 sort One
  • 使用 Inno Setup 安装时应用程序无法运行

    我正在开发桌面数据库应用程序 使用rdlc报告和reportviewer 开发过程中一切顺利 reportviewer 可以顺利显示所有数据 我使用 Inno Setup 部署应用程序 但是当我安装该应用程序时 报告查看器不显示数据 当数据
  • jsPDF/html2canvas 通常会丢失空格和文本错位

    我正在使用 html2canvas 和 jsPDF 生成 pdf 客户端 无论我选择什么设置 我都会在 html 到 pdf 渲染中丢失字母空格 有设置可以解决这个问题吗 我已经检查了 API 并更改了我能想到的所有可能的设置 但间距没有改
  • 如何从android服务获取返回值

    我遇到的问题是我不知道如何从服务中获取返回值 为什么我想要从服务返回值是我想在活动页面中显示这个返回值 以下是我的服务文件 返回值是retvalue public class SyncService extends Service priv
  • iPhone ios 上的 swift 3 中的弹出窗口

    我正在尝试使用以下代码制作弹出菜单 import UIKit class BeobachtungViewController UIViewController UIPopoverPresentationControllerDelegate
  • Android N 预览版不允许传输至 myserver.com 的明文 HTTP 流量

    昨天我获得了 Android N 预览版的新升级 自从我升级后 我就无法再启动我的应用程序了 java io IOException Cleartext HTTP traffic to myserver com not permitted
  • 如何在Windows中保存.env文件?

    我尝试保存文件 env文件扩展名 但我看不到任何 env另存为下拉选项中的文件扩展名 我也尝试将其重命名为 env但它被保存为文本文件 参见屏幕截图 我该如何解决这个问题 如果您使用 Windows 要保存扩展名与您正在使用的工具的默认扩展
  • 在 SQL 中编写左/右 JOIN 时,您是否使用 OUTER 关键字?

    我经常看到有人这样写SQL SELECT from TableA LEFT OUTER JOIN TableB ON ID1 I2 我自己简单写一下 SELECT from TableA LEFT JOIN TableB ON ID1 I2