gpt4 book ai didi

mysql - 查询具有链接数据的多个表

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

概述:

我有一个使用 mysql 数据库的 Rails 项目,其中有从 2 个来源上传的有关大学生成绩的数据。

当我上传成绩时,我需要首先找到有关学生就读类(class)的哪个部分的“Enroll”记录。“Enroll”通过belongs_to连接到“Student”和“Section”。学生将存在于学生表中,但部分和注册可能存在也可能不存在。如果它们不存在,我想创建它们。

当前代码:

我目前解决此问题的尝试是:

enrolled = Enroll.find_or_create_by(Student: student, 
Section: {Course: course, semester: semester, year_offered: year_taken})

我收到以下错误:

Mysql2::错误:“where 子句”中的未知列“Section.semester”:SELECT enrolls.* FROM enrolls WHERE Section .学期 = '秋季' AND 部分.year_offered = 2012 AND 部分.Course_id = 4 AND 注册Student_id = 11 LIMIT 1

问题:

1) 这是处理此查询的正确方法吗?如果该部分不存在,我是否需要进行多步骤?

2) 为什么我会收到未知列错误?

其他详细信息:

sections = Section.where(类(class):类(class),学期:学期,year_offered:year_taken) 效果很好。

注册属于学生和部门。

学生和部门 has_many 注册模型依赖关系图的相关部分是:

enter image description here

我是 Rails 新手,所以如果您还需要其他东西,请告诉我。或者,如果有另一个页面已经解释了这一点,请指出我那里。我发现很难找到相关页面,因为我在搜索时不太熟悉术语。

最佳答案

您似乎没有加入查询中的“部分”表。试试这个:

SELECT enrolls.* FROM enrolls 
INNER JOIN Section ON enrolls.belongs_to = Section.belongs_to
WHERE Section.semester = 'Fall'
AND Section.year_offered = 2012
AND Section.Course_id = 4
AND enrolls.Student_id = 11
LIMIT 1

关于mysql - 查询具有链接数据的多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31408392/

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