gpt4 book ai didi

按平均值排序的 MySQL 表 JOIN

转载 作者:太空宇宙 更新时间:2023-11-03 11:07:07 25 4
gpt4 key购买 nike

首先,我对 MySQL 还不是很熟悉,所以不要着急。我什至不确定如何表达我的问题。

我有两张 table ;一个表包含有关链接的信息,另一个表包含用户对每个链接的评级。本质上,我只需要能够按平均评分对链接表进行排序。

表格:

链接

  • link_id PK int 自动增量
  • url varchar
  • 标题可变字符
  • 描述文本
  • 评级十进制

link_ratings

  • link_rating_id PK int 自动增量
  • link_id FK int
  • user_id FK int
  • 评级十进制

我需要的是,当有人向链接添加链接评级(新的 link_ratings 条目)或更新他们当前的评级时,该链接的所有评级都会在链接的评级列中进行平均和更新。或者我可以完全取消链接表中的评级列并使用 JOIN 吗?

如果是这样,我将如何进行 JOIN。如果没有,我如何制作能够为我完成此任务的 TRIGGER?

我没能找到很多关于如何开始这个的信息,很可能是因为我缺乏 SQL 知识。

感谢任何帮助。谢谢。

最佳答案

您不需要在 links 表中保留 rating 平均值。我在下面计算它,这应该表现得相当好:

select l.link_id,
l.url,
l.title,
l.description,
lra.AvgRating
from links l
left outer join (
select link_id, avg(rating) as AvgRating
from link_ratings
group by link_id
) lra on l.link_id = lra.link_id
order by lra.AvgRating desc

关于按平均值排序的 MySQL 表 JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11211919/

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