gpt4 book ai didi

mysql - 如何使单元格值相对于另一个表?

转载 作者:太空宇宙 更新时间:2023-11-03 12:05:36 24 4
gpt4 key购买 nike

在 SQL 中,假设我们有一个名为“courses”、“student”和“courses_taken”的表

类(class)

c_id key int
name text
credits int

学生

s_id key int
name text
total_credits int

已修课

id key int
s_id foreign int
c_id foreign int

我想让 total_credits 字段基本上等于

select sum(c.credits) from courses c, students s, courses_taken ct where ct.c_id = courses.c_id and ct.s_id = s.s_id;

我假设这不是正确的方法,因为我以前从未使用过多表查询,如果有人可以帮助我处理该 sql 查询,那就太好了。谢谢

最佳答案

MySQL 中没有任何“内置”的东西可以让您直接执行此操作。每次更新 courses_takencourses 表时,您都必须编写一些代码来更新 total_credits

虽然有几个选项可以处理这个问题

  1. 在您的应用程序中编写代码以维护 total_credits 列。

  2. 使用 coursescourses_taken 表上的触发器在数据库中编写代码,以保持 total_credits 列最新插入/更新/删除行的日期。

  3. 去掉 total_credits 列,只在需要时通过查询计算它(参见@andy 的回答)。

  4. 编写一个定期计算 total_credits 的批处理作业,并接受它不会始终 100% 正确的事实。

您选择哪个取决于您在其中使用此数据库的应用的要求。

关于mysql - 如何使单元格值相对于另一个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26788685/

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