选择另一个表中缺少的记录的有效方法

2023-12-05

我有3张桌子。下面是结构:

  • student (id int, name varchar(20))
  • course (course_id int, subject varchar(10))
  • student_course (st_id int, course_id int) -> 包含注册课程的学生姓名

现在,我想编写一个查询来查找未注册任何课程的学生。据我所知,有多种方法可以获取此信息。您能否让我知道其中哪一个最有效以及为什么。另外,如果有其他更好的方法来执行相同的操作,请告诉我。

db2 => select distinct name from student inner join student_course on id not in (select st_id from student_course)

db2 => select name from student minus (select name from student inner join student_course on id=st_id)

db2 => select name from student where id not in (select st_id from student_course)

提前致谢!!


你使用的子查询,无论是not in, minus或其他什么,通常效率很低。常见的方法是left join:

select name 
from student 
left join student_course on id = st_id
where st_id is NULL

Using join是“正常”且首选的解决方案。

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

选择另一个表中缺少的记录的有效方法 的相关文章

  • 根据表sql中的行替换字符串中的字符

    我需要用一些映射的字符替换字符串中的字符列表 我有一个表 dbo CharacterMappings 有 2 列 CharacterToFilter 和 ReplacementCharacter 假设这个表中有3条记录 Filter Rep
  • SQLite HAVING 比较错误

    我有一个测试 SQLite 表 用于存储带有值的报告数据 CREATE TABLE IF NOT EXISTS test fact daily revenue date TEXT revenue NUMERIC product TEXT I
  • 数据库分片和 Rails

    在 Rails 中处理分片数据库的最佳方法是什么 分片应该在应用层 活动记录层 数据库驱动层 代理层还是其他层处理 各自的优点和缺点是什么 FiveRuns 有一个名为的 gem数据结构 https github com bpot data
  • 使用两个日期之间的随机日期时间更新每一行

    我有一个专栏叫date created我希望每一行保存一个随机日期 日期距当前时间为 2 天 我正在运行以下查询 但它会更新具有相同随机日期的所有行 我希望每一行都是随机的并且不相同 update table set date create
  • PHP 绑定“bigint”数据类型(MySQLi 准备好的语句)

    studentId 57004542323382 companyOfferId 7 sql INSERT INTO studentPlacement companyOfferId studentId VALUES if stmt db gt
  • 复选框上的数据绑定

    我目前正在将数据从 SQL 数据库之一提取到我的应用程序中 我可以让它适用于我的文本框和其他项目 但是 我似乎无法让它适用于复选框 这是我正在使用的代码 DataTable dt new DataTable dt using SqlConn
  • 如何使用PostGIS将多边形数据转换为线段

    我在 PostgreSQL PostGIS 中有一个多边形数据表 现在我需要将此多边形数据转换为其相应的线段 谁能告诉我如何使用 PostGIS 查询进行转换 提前致谢 一般来说 将多边形转换为线可能并不简单 因为没有一对一的映射 http
  • 查找 PostgreSQL 中所有范围集合的所有交集

    我正在寻找一种有效的方法来查找时间戳范围集之间的所有交集 它需要与 PostgreSQL 9 2 配合使用 假设这些范围代表一个人可以见面的时间 每个人都可以有一个或多个空闲时间范围 我想找到all可以召开会议的时间段 即所有人都有空的时间
  • APEX 安装失败,PLS-00201:必须声明标识符“SYS.DBMS_DB_VERSION”

    尝试在 Oracle XE 18c 数据库上安装 Oracle APEX 20 2 如下官方说明 https docs oracle com en database oracle application express 20 1 htmig
  • ActiveRecord:向包含的 ON 子句添加条件

    我有一个模型报价和另一个历史报价 一个报价有很多历史报价 现在 我想立即加载一组报价的某一天的历史报价 如果存在 为此 我认为我需要将这一天传递给 ON 子句 而不是 WHERE 子句 以便我获得所有报价 即使在给定日期没有历史报价时也是如
  • 了解 SSMS 2008 中关系的更新和删除规则

    当我们定义外键约束时 我对 SQL Server 2008 Management Studio 中的更新和删除规则的含义感到困惑 我也没有找到相关的帮助文档 例如F1帮助 这是屏幕快照 如果有人能描述它们的含义并推荐一些相关文档来阅读 我将
  • 当所有维度值都具有 100% 重要性时处理多对多维度

    我至少会尽力保持简洁 假设我们正在跟踪一段时间内的账户余额 所以我们的事实表将包含诸如 账户余额情况表 FK 账户ID FK 日期ID Balance 显然你有一个账户维度表 and a 日期维度表 所以现在我们可以轻松地过滤帐户或日期 或
  • 初级SQL部分:避免重复表达式

    我对 SQL 完全陌生 但我们可以说StackExchange 数据浏览器 https data stackexchange com 我只想按信誉列出前 15 位用户 我写了这样的内容 SELECT TOP 15 DisplayName I
  • SELECT 语句会受到 SQL 注入攻击吗?

    实际上有2个问题 我知道我必须尽可能多地使用存储过程 但我想知道以下内容 A 我可以从 SELECT 语句 例如 Select from MyTable 获得 SQL 注入攻击吗 B 另外 当我在 ASP NET 中使用 SQLDataSo
  • 为什么我可以像调用实例方法一样调用类方法?

    我正在查看这个例子 class SQLObject def self columns return columns if columns columns DBConnection execute2 lt lt SQL first SELEC
  • 计算运行总计时出错(之前期间的累计)

    我有一张桌子 我们称之为My Table有一个Created日期时间列 在 SQL Server 中 我试图提取一个报告 该报告显示历史上有多少行My Table按月在特定时间 现在我知道我可以显示有多少added每个月 SELECT YE
  • 使用间隔阈值对不同的连续时间戳记录进行分组

    我有一系列间歇性间隔的带有时间戳的 GPS 坐标 我正在使用 PostGIS 将它们渲染到地图画布上 为了渲染它们 需要使用 PostGIS 中的 ST MakeLine 聚合函数将点聚合成线 从而在地图上留下 GPS 数据丢失的间隙 数据
  • 如何在NiFi中映射流文件中的列数据?

    我有 csv 文件 其结构如下 Alfreds Centro Ernst Island Bacchus Germany Mexico Austria UK Canada 01 02 03 04 05 现在我必须将这些数据移入数据库 如下所示
  • 如何获得顶部带有千位分隔符的数字?

    SELECT count FROM table A 假设结果是8689 我怎样才能将它转换为8 689在 SQL Server 上 尝试这样 select replace convert varchar convert Money coun
  • 使用 postgres 和 node js 在单个语句中执行多个查询

    我需要在像这样的单个语句中执行插入和删除查询 INSERT INTO COMPANY ID NAME VALUES 1 Paul DELETE FROM COMPANY WHERE ID 12 这是我用于执行查询的 node js 代码 p

随机推荐

  • 如何获得随机颜色而不重复?

    我想为每个门获得随机颜色 所以我有 9 个门 9 种材料和 9 种颜色 现在我希望每个门都获得随机颜色 但颜色不能重复 例如 不能2 种红色或 3 种蓝色 各一种 感谢帮助enter image description here 这是我尝试
  • 外国时间与当地时间

    我正在尝试将外国时间转换为当地时间 我正在获取日期和时间Europe London 目前我正在使用时刻时区来让我的代码正常工作 但是它给了我错误的输出 resultDate new moment 2017 06 30T22 10 00 tz
  • 有没有办法突出显示日历中的单元格?

    我知道有一种方法可以突出显示单元格TStringGrid 我可以使用它 但是输入日期 日期和月份将是一个大问题 除非您知道如何做到这一点 是的 如果您只对控件的源代码进行少量修改 这很容易 具体来说 我们需要在其上添加少量代码DrawCel
  • 关于 ruby​​ 哈希值的恼人问题

    为什么 ruby 有时会将哈希解释为代码块 例如 我有一个名为 required 的函数 它需要哈希值 所以我这样做 required base uri String endpoints String destination String
  • 为什么使用平均值时图表会出现尖峰?

    我在 WCF 服务中使用 messageInspectors 来测量每个服务方法的运行时间 如下所示 public void AfterCall string operationName object outputs object retu
  • 为什么 HTML 正文背景颜色不遵守边距?

    根据w3 margin元素的透明 我已经构建了一个非常基本的 HTML 页面 在 Chrome 中 检查员报告 body 的边距为 8px 但在页面上 边距全是背景色 请注意 我的书签栏和红色背景之间没有空间 我保证我没有滚动 那是怎么回事
  • 优化的浮动模糊变化

    我正在寻找 C 中的优化函数来计算浮点数的面积平均值 该函数传递一个源浮点数组 一个目标浮点数组 与源数组大小相同 数组宽度和高度 模糊 区域宽度和高度 该函数应该 环绕 边缘以进行模糊 平均值计算 以下是使用矩形进行模糊处理的示例代码 F
  • 在 iOS 应用程序中运行 python 脚本

    我需要在 ios 应用程序中运行 python 脚本 我发现这个问题在ios中运行一个简单的python脚本在回答中他包括了Python h include
  • 在没有 htaccess 的情况下用 PHP 重写 URL

    网站正在虚拟主机上运行 我们无法访问该虚拟主机 htaccess文件 但是 我想对用户友好的 URL 进行 URL 重写 例如原始网址 www example com file q name 预期网址 www example com fil
  • Python:从列表创建 pandas 数据框

    我使用以下代码从列表创建数据框 test list a b c d df test pd DataFrame from records test list columns my letters df test 上面的代码工作正常 然后我对另
  • 在Python中,如何按排序键顺序迭代字典?

    有一个现有的函数以以下结尾 其中d是一本字典 return d iteritems 返回给定字典的未排序迭代器 我想返回一个遍历已排序项目的迭代器by key 我怎么做 还没有对此进行广泛的测试 但可以在 Python 2 5 2 中使用
  • 将 SSE 转换为 Neon:如何打包然后提取 32 位结果

    我必须将以下指令从 SSE 翻译为 Neon uint32 t a mm cvtsi128 si32 mm shuffle epi8 a SHUFFLE MASK Where static const m128i SHUFFLE MASK
  • Google 地图 V3 键盘辅助功能

    我正在构建一个地图 我希望可以通过键盘访问 V3 默认情况下可以通过键盘访问 但似乎在单击地图之前您无法访问键盘功能 我添加了一个链接来选择 它将带您到包含地图的 div 标签 但这不起作用 有没有什么方法可以在不实际使用鼠标的情况下激活一
  • 如何设置JavaScript窗口对象打开的窗口中某些元素的innerHTML?

    我有一些简单的 JavaScript 代码 如下所示 该函数通过 onclick 事件调用 窗口打开正常 但元素的innerHTML 没有改变 这是我拥有的文件 所以我知道我没有被任何安全策略阻止 并且 id 为 foo 的元素肯定存在 这
  • 无法使用 libcurl 访问需要客户端身份验证的站点

    我使用下面的片段来设置客户端身份验证的证书和密钥 curl easy setopt curl CURLOPT SSLCERT clientCert pem curl easy setopt curl CURLOPT SSLCERTPASSW
  • SQL Server - 与 NULL 相比非常慢

    我想加快以下查询的速度 WHERE 子句中有两个条件 请参阅下面的查询以供参考 目前 大约需要 60 秒 但是 如果我删除 where 子句中的第一个条件 Query 为 NULL 那么它几乎立即返回 关于如何加快速度有什么想法吗 表中大约
  • 相机框架和物体框架

    我正在阅读有关交互式图形的内容 特别是我开始了有关观看的部分 但我不太理解这句话 最初 我们从设置为单位矩阵的模型视图矩阵开始 因此相机框架和物体框架是相同的 我知道什么是模型视图矩阵 并且我知道在这种情况下相机视图的方向是 z 负轴 但我
  • 从 master 更新 Git 分支

    我有四个分支 master b1 b2 和 b3 在我完成 b1 b3 之后 我意识到我在分支 master 上需要更改一些应该在所有其他分支中的内容 我改变了我需要的master而且 这是我的问题 如何更新所有其他分支master分行代码
  • 在循环中查找列表的索引

    我有一个简单的问题 如果我在 python 中有一个 for 循环 如下所示 for name in nameList 我如何知道元素名称的索引是什么 我知道我可以做一些类似的事情 i 0 for name in nameList i i
  • 选择另一个表中缺少的记录的有效方法

    我有3张桌子 下面是结构 student id int name varchar 20 course course id int subject varchar 10 student course st id int course id i