gpt4 book ai didi

mysql - 从三个表中查询结果时遇到问题

转载 作者:行者123 更新时间:2023-11-29 03:57:03 25 4
gpt4 key购买 nike

我正在尝试查询一些数据来练习,这是三个表:

course    assignment    assignment_submissions
id id id
course assignment

如您所见,关系非常基本,但我对普通 SQL 生疏了,这就是我练习的原因。

给定一个 course 'id',我如何找到属于它的所有 assignment_submission 行?

我需要获取作业,然后针对每个作业获取每个提交。这是我的尝试,但这失败了并返回了比预期大得多的数据集。

SELECT sub.id, sub.grade,
FROM uv_assignment_submissions sub, uv_assignment ass
WHERE ass.course = 1245

最佳答案

您需要JOIN 所有 3 个表,courseassignmentassignment_submissions。我使用了一个 JOIN 构造,假设您仅在 assignmentsassignment_submissions 存在某些记录时才需要显示类(class)详细信息。

您的查询失败的原因是,它当前从 2 个表 中获取所有记录的 Cartesian 乘积,您需要一个条件来指定哪些行是通过指定JOIN条件

对当前 赋值有效

像这样的东西应该可以工作

SELECT
c.id,
asub.id
FROM
course c
JOIN assignment a ON ( c.id = a.course )
JOIN assignment_submissions asub ON ( asub.ID = a.assignment )
WHERE
c.id = 10 --your course id goes here OR c.id in (10, 20, 30) -- for multiple IDS

有关 SQL 连接的更多信息:http://dev.mysql.com/doc/refman/5.0/en/join.html

关于mysql - 从三个表中查询结果时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16351307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com