gpt4 book ai didi

php - MYSQL子查询内连接order by count

转载 作者:行者123 更新时间:2023-12-01 00:21:06 25 4
gpt4 key购买 nike

我有两张 table 。一个用于 movies(其中列出了 id、movie_title、movie_director 等),另一个是 likes 表:它跟踪有多少人添加了任何特定的电影到他们的最爱。它只有两个字段movie_id, user_id。两者都是来自相应表(moviesusers)的外键引用

现在我想显示所有按喜欢次数最多排序的电影。

所以我必须使用选择查询,并且在其中我必须通过子查询对其进行排序,子查询计算每部电影的点赞数。

是这样的吗?

select * 
from movies
inner join likes
on movies.id=likes.movie_id
order by (
select count *
from likes
where movie_id=?
)

我真的被困在这里了。 Likes 表有这样的结构

user_id 1,movie_id 2, user_id 2, movie_id 2

所以在选择时,我应该先找到 ID 为 2 的电影,因为它有 2 个赞。

但是怎么做呢?

艾玛。

最佳答案

你必须计算点赞数并按计数排序:

select m.id,
m.movie_title,
m.movie_director,
count(l.movie_id) as num_likes
from movies m
left join likes l
on m.id = l.movie_id
group by m.id, m.movie_title, m.movie_director
order by num_likes desc

这将按降序进行(最喜欢的在前)

关于php - MYSQL子查询内连接order by count,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26242454/

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