INNER JOIN 与“FROM”中的多个表名[重复]

2024-03-09

可能的重复:
INNER JOIN 与 WHERE 子句 — 有什么区别? https://stackoverflow.com/questions/1018822/inner-join-versus-where-clause-any-difference

和有什么区别INNER JOIN查询和一个隐式连接查询(即在FROM关键词)?

例如,给出以下两个表:

CREATE TABLE Statuses(
  id INT PRIMARY KEY,
  description VARCHAR(50)
);
INSERT INTO Statuses VALUES (1, 'status');

CREATE TABLE Documents(
  id INT PRIMARY KEY,
  statusId INT REFERENCES Statuses(id)
);
INSERT INTO Documents VALUES (9, 1);

下面两个 SQL 查询有什么区别?

根据我所做的测试,他们返回相同的结果。他们做同样的事情吗?在某些情况下它们会返回不同的结果集吗?

-- Using implicit join (listing multiple tables)
SELECT s.description
FROM Documents d, Statuses s
WHERE d.statusId = s.id
      AND d.id = 9;

-- Using INNER JOIN
SELECT s.description
FROM Documents d
INNER JOIN Statuses s ON d.statusId = s.id
WHERE d.id = 9;

没有理由使用隐式连接(带逗号的连接)。是的,对于内部联接,它将返回相同的结果。然而,它会受到无意的交叉联接的影响,尤其是在复杂的查询中,并且维护起来更加困难,因为左/右外联接语法(在 SQL Server 中已弃用,现在无论如何都不能正常工作)因供应商而异。由于您不应该在同一查询中混合隐式连接和显式连接(您可能会得到错误的结果),因此需要将某些内容更改为左连接意味着重写整个查询。

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

INNER JOIN 与“FROM”中的多个表名[重复] 的相关文章

  • 存储过程总是返回0

    我试图从存储过程获取返回值 但它总是返回 0 c code cmd new SqlCommand cmd CommandType CommandType StoredProcedure cmd CommandText AbsentEntry
  • ORACLE:未找到数据——但数据存在

    调试包过程 当实际上有数据时却找不到数据 仅测试 SELECT SELECT trim trailing from GL SECURITY as DUMMY FROM b2k user b2k WHERE sms username FUCH
  • 显示一个表中的所有记录以及另一表中的匹配记录

    您好 我有一张下表 其中记录了活动和积分 Activites A ID Site ActivityValue ActivityName 1 site1 7 ActivityName1 2 site1 6 ActivityName2 2 si
  • 如何将列中的天数添加到 DB2 中的当前日期?

    我正在编写此 SQL 来动态计算一定的天数 如下所示 但我不知道如何让它工作 因为我不断收到错误 select Current Date Dynamic numbr of days calculation here from TableNa
  • 无重复组合的交叉连接

    我知道这个问题与这个问题非常相似 对称交叉连接 https stackoverflow com questions 12490244 symmetric cross join还有这个 sql 中交叉连接的组合 不是排列 https stac
  • VS 13/VS 15 - 无法导入 SQL 片段

    我想在中创建 SQL 片段VS2013 and VS2015 我不知道为什么 但我在导入时遇到错误 在两个 VS 中 C sql snippet Missing or unspecified Language attribute 我的片段
  • 如何在 DataColumn.Expression 中使用 IF/ELSE 或 CASE?

    我有一个包含 1 列的表 状态 我想添加另一列名为 Action 的列 其值如下 如果 Status Yes 则 Action Go 否则 Action Stop 我使用以下代码添加到 操作 列中 但它不起作用 myDataTable Co
  • 如何在事务中使用链接服务器插入远程表?

    我的链接服务器设置正确 我能够执行以下查询 插入 远程服务器 表 SELECT FROM 本地服务器 表 然而当我做同样的事情时交易内 开始传输 插入 远程服务器 表 SELECT FROM 本地服务器 表 提交交易 我收到类似的错误 用于
  • 通过Java从MySQL中获取大量记录

    有一个 MySQL 表 服务器上的用户 它有 28 行和 100 万条记录 也可能会增加 我想从这个表中获取所有行 对它们进行一些操作 然后将它们添加到 MongoDB 中 我知道通过简单的 从用户中选择 操作来检索这些记录将花费大量时间
  • 有没有办法在 MySQL 中有效地对 TRUNCATE 或 DROP TABLE 进行 GRANT ?

    我最近在 MySQL 5 5 x 中尝试过 GRANT SELECT INSERT UPDATE DELETE TRUNCATE ON crawler TO my user localhost WITH GRANT OPTION 这会导致错
  • SQL Server 中的嵌套事务

    sql server 允许嵌套事务吗 如果是的话那么交易的优先级是什么 来自 SQL Server 上的 MSDN 文档 嵌套交易 http msdn microsoft com en us library ms189336 SQL 90
  • 如何根据条件删除结果以计算平均值

    我有下面的架构 对其的快速解释是 鲍勃评分为 5 5 詹姆斯评分 1 5 梅西百货评分高达 5 5 逻辑 如果我是 A 请查找我屏蔽的所有人 查阅所有电影评论 任何留下电影评论且 personA 已屏蔽的人 请将其从计算中删除 计算电影的平
  • 按原样将 SQL 保存到 YAML

    我想以我自己的格式将 SQL 保存到 YAML 文件 如下所示 1 sql SELECT DISTINCT p id product p price AS price sp reduction AS discount FROM 我使用 YA
  • 在 azure Devops 管道中部署 SQL 时遇到错误

    我在 azure Devops 的发布管道中使用 sql DACPAC 类型的部署 但出现以下错误 我对 SQL 不了解 有什么建议吗 Publishing to database database name on server Serve
  • 优化 LATERAL join 中的慢速聚合

    在我的 PostgreSQL 9 6 2 数据库中 我有一个查询 该查询根据一些股票数据构建计算字段表 它为表中的每一行计算 1 到 10 年的移动平均窗口 并将其用于周期性调整 具体来说 CAPE CAPB CAPC CAPS 和 CAP
  • 如何检查oracle数据库中分配给模式、角色的对象的权限(DDL、DML、DCL)?

    大多数时候 我们都在与愚蠢的事情作斗争 以获取架构 角色及其对象的权限详细信息 并尝试找到一些简单的方法来获取有关它的所有详细信息以及伪查询代码 以批量生成授予语句以供进一步使用执行 所以我们在这里得到它 关于数据字典视图前缀的一些简单介绍
  • SQL 选择 n 到 m 关系

    我有一个n to m之间的关系Author and Book 表作者 ID Name 1 Follett 2 Rowling 3 Martin 桌书 ID Title Category 1 A Dance with Dragons Fant
  • 删除重复的行并需要在mysql中保留所有行中的一个[重复]

    这个问题在这里已经有答案了 我想删除基于两列的重复行 但需要保留所有行 1 行 重复行可以多于两行 例如 ID NAME PHONE 1 NIL 1234 2 NIL 1234 3 NIL 1234 4 MES 5989 我想从上面 3 行
  • 创建日期范围表

    我正在编写一份需要显示每天值的报告 我有查询的开始日期和结束日期 但我希望避免丢失日期 以防表不包含特定日期的值 我正在考虑创建一个基本日期范围表 其中包含开始和结束之间的所有日期 然后将其与数据表左连接以显示每一天的值 我找到了一些适用于
  • 在 SQL 中按键组对行进行顺序编号?

    SQL中有没有办法按顺序添加行号按关键组 假设一个表包含任意 CODE NAME 元组 示例表 CODE NAME A Apple A Angel A Arizona B Bravo C Charlie C Cat D Dog D Dopp

随机推荐

  • 将 django 应用程序移动到子文件夹和 url.py 错误

    我有一个关于将 django 应用程序放入 apps 子目录的问题 我在项目根目录中有一个名为 faktura 的应用程序 我不喜欢它放在那里 我想将所有应用程序存储在 apps 子目录下 所以 我发现我可以将python路径扩展到 app
  • MVC 5 ViewBag 安全性

    我正在编写一个 MVC 互联网应用程序 我有一个关于使用 ViewBag 的问题 在我的许多控制器中 我都有 SelectList 对象 用户可以在其中选择一个对象 所选对象是我的模型的外键值 我的问题是 我应该使用 ViewBag 吗 V
  • 使用 htaccess 将 HTTP GET 请求重写为 Apache 中的 POST

    我需要更改第三方 PHP 应用程序的行为 并在此后不久恢复更改 如果我可以重写 GET 请求并从中生成 POST 请求 我将节省大量时间 并且可以避免在应用程序中进行任何更改 是否可以改造GEThttp website action1 pa
  • 如何用C语言打印

    一个 C 初学者 事实上这是我的第一个测试程序 我实际上不知道如何将该数字打印到终端 include
  • 我可以同时使用 setupWithNavController 和 setOnNavigationItemSelectedListener

    我有一个带有 BottomNavigationView 的活动 其中包含 5 个项目和片段来显示页面 我将 NavController 设置如下 NavigationUI setupWithNavController mBottomNavi
  • PHP 获取前一个数组元素并知道当前数组键

    我有一个带有特定键的数组 array 420 gt array 430 gt array 555 gt array 在我的应用程序中 我知道当前的密钥 例如555 我想获取前一个数组元素 在此示例中 它是带有键的数组元素430 我怎样才能在
  • MQTT:如何知道 puback 是针对哪条消息的?

    我正在尝试设置一个 MQTT 服务器 它将客户端发送的消息保存到本地数据库中 每条消息都有一个 成功接收 标志 当接收客户端为收到的每条消息 QOS 1 返回 puback 时 我想翻转该标志 问题是 当我发布消息时 服务器正确接收从接收客
  • Symfony 2 多个应用程序?

    这似乎是与 Symfony2 相关的最可怕的话题 因为经过一周的搜索和测试 我仍然找不到答案 简而言之 我正在构建一个具有多个子域的应用程序 我希望为所有子域提供不同的配置 同时共享来自 src 的多个捆绑包 更重要的是 导入中央配置和路由
  • Spring Data JPA:删除乐观锁定语义

    有一个实体Foo with a Version柱子 如果我想删除它 我希望 Spring Data JPA 和 或 Hibernate 检查 Version列与数据库中的列匹配 如果不符合 则应拒绝删除 对于独立实体来说 这可以按预期工作
  • 为什么在 Javascript 的 array.forEach 回调中提供数组参数?

    Javascript 的数组迭代函数 forEach every some等 允许您传递三个参数 当前项 当前索引和正在操作的数组 我的问题是 与通过闭包访问数组相比 将数组作为参数进行操作有什么好处 我为什么要使用这个 myArray f
  • Github Desktop - 作者身份未知

    我正在使用 github 桌面上传一些基本网站的代码 然后使用 github 页面 但是 每次我尝试提交到 main 时 都会出现错误 提示 作者身份未知 我知道我必须将我的姓名和电子邮件放入文件中 但是其中有两个带有 JavaScript
  • 可变参数函数 - 如何确保参数正确传递

    有没有什么方法 内置或代码模式 来确保向可变参数函数传递正确数量的参数 显然 这将作为 API 的一部分包含在内 我可以检查我自己的内部代码 我正在考虑要求 UN32 Magic Number 作为最后一个传递的参数 并检查可变参数函数的有
  • “tensorboard”不被识别为内部或外部命令,

    刚刚开始使用 Tensorflow 但我无法在 cmd 上使用 tensorboard 命令 它给出了错误命令 C Users tushar PycharmProjects gt tensorboard logdir NewTF tenso
  • AngularJS 和 ReactJS 之间的主要区别是什么

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要创建一个将转换为移动应用程序的网站 我想要构建的内容更适合成为网站而不是应用程序 因此建筑物本身应该作为网站 由于我更熟悉桌面和
  • Camel Apache:从接收到的 XML 中提取一些值的 xpath

    在我的 Camel 路由期间 我查询服务器 HTTP GET 结果 我收到一个 200 OK 其 XML 正文看起来类似如下
  • PHP websocket 连接到 node.js 服务器

    我有简单的 node js websocket 服务器 var fs require fs var ws require var options secure false var Server ws createServer options
  • 从 Graph API 中删除照片标签

    我正在尝试创建一个应用程序来帮助用户删除不需要的标签 我听到很多人抱怨 FB 不再允许公众访问删除图片 标签也是如此吗 I get error type OAuthException message 3 Application does n
  • 无法从存储“C:\Users\....\.android\debug.keystore”读取密钥 AndroidDebugKey:密钥库格式无效

    我正在尝试在 android studio 中发布一个简单的项目 所以我转到菜单 gt 构建 gt 构建 apk 但是我收到此错误 Error Execution failed for task app packageDebug gt Fa
  • 将球体映射到立方体

    这里描述了一种将立方体映射到球体的特殊方法 http mathproofs blogspot com 2005 07 mapping cube to sphere html http mathproofs blogspot com 2005
  • INNER JOIN 与“FROM”中的多个表名[重复]

    这个问题在这里已经有答案了 可能的重复 INNER JOIN 与 WHERE 子句 有什么区别 https stackoverflow com questions 1018822 inner join versus where clause