当前位置: 首页 > 知识库问答 >
问题:

SQL-比较具有类似主键约束的两行

慎懿轩
2023-03-14

有一个学生课程score_sheet表。score_sheet表具有由学生id课程id组成的主键约束。我想得到一个学生记录,他们的course_1的分数高于course_2

从上面的表格中,克莱尔是唯一满足条件的学生,course_1的分数高于course_2

我不知道如何将查询写入获取此类记录。

我只设法将学生表与计分表进行了内部连接,但不确定从这里开始往哪里走。

SELECT * FROM student s
INNER JOIN score_sheet sc
    ON s.SNO = sc.SNO

共有1个答案

濮金鑫
2023-03-14

加入两次分数表,每门课程一次。

SELECT s.*
FROM student AS s
JOIN score_sheet AS ss1 ON s.student_id = ss1.student_id
JOIN score_sheet AS ss2 ON s.student_id = ss2.student_id AND ss1.score > ss2.score
WHERE ss1.course_id = 'c001' AND ss2.course_id = 'c002'
 类似资料:
  • 我正在尝试设置一个验证来比较两个日期。一个日期应该比另一个日期短。 此外,我为我的两个约会都创建了一个自定义约束。但问题是,我的注释接口无法处理非原始数据类型。 这是我的代码:(我知道这是错误的,但如果我展示我的源代码,也许你可以理解我的问题) 豆子: 注释界面: 所以这里有一个问题:我试图将类型放入类型。但是,如果我将我的和声明为,则存在一个问题: 还有其他方法来比较两次约会吗? 我错过了什么?

  • 问题内容: 我收到以下错误: 违反主键约束’PK_ss_student_grade’。无法在对象“ dbo.ss_student_grade”中插入重复的密钥。重复密钥值为(301、1011、24801、33)。 如果我在插入之前检查表,则没有记录具有这样的主键。 插入是通过C#代码完成的,并且我确保该代码仅运行一次。即使在错误之后,如果我检查表,我仍然无法获得具有这样的主键的记录。 注意:触发器

  • 我有个任务我必须 创建特定情况的实体关系图,然后 编写SQL代码来表示图表 我不熟悉SQL Server,但我有一个表,它有一个主键和两个外键,与讲师有一个强制关系,与

  • 问题内容: 这是场景: 我有2个数据表,一个是2009年版本,另一个是2010年版本。每个表的主键是组合键。我知道每一行都有不同数量的行,我需要找出差异。 通常,在“常规”主键设置中,我只会在其他表的主键列表中查找主键值。但是我不知道如何使用复合主键(甚至是可能的话)执行此操作。 那么,如何比较这两个表中的行呢? 编辑:更具体地说,我试图找到表之间的 差异 ,而不是共同的行 问题答案: 只需使用基

  • 问题内容: 我们正在设计一个数据库,在该数据库中,我需要考虑一些FK(外键)约束。但它不仅限于正式的结构化和规范化。只有在它提供任何性能或可伸缩性优势的情况下,我们才会采用它。 我一直在浏览一些有趣的文章,并在谷歌搜索中获得了实际的好处。以下是一些链接: http://www.mssqltips.com/tip.asp?tip=1296 我想更多地了解FK的好处(除了正式的结构和著名的级联dele

  • 主要内容:创建约束,删除约束关于 SQL 约束,我们已经在《 RDBMS是什么》中进行了简要介绍,但是现在我们有必要再温习一下,并稍加深入。 约束(Constraint)是指表的数据列必须强行遵守的规则,这些规则用于限制插入表中的数据类型,这样能够确保每份数据的准确定和可靠性。 约束可以是列级别,也可以是表级别;列级约束仅作用于某一列,而表级约束则作用于整张表。 下面是 SQL 常用的一些约束: 约束 说明 NOT NULL