我有两个实体,视频和投票。投票与视频有多对一的关系,但视频与投票无关。我正在尝试检索按投票数排序的视频列表。
以下SQL可以帮助我获得我想要的东西:
SELECT video.*, COUNT(video_id) AS vote_count
FROM video
LEFT JOIN vote ON vote.video_id = video.id
GROUP BY video.id
ORDER BY vote_count DESC;
我正在尝试使用DQL实现类似的功能,但到目前为止还没有运气:
SELECT vid.name, COUNT(vote.video_id) as vote_count
FROM VideoVote\Video\Video vid
JOIN vote.video vid
GROUP BY video.id
ORDER BY vote_count DESC
答案 0 :(得分:0)
无法完成,因为......视频与投票没有关系。所以你的选择是
答案 1 :(得分:0)
谢谢Flip。一旦我从视频到投票添加了一对多关联,以下DQL就可以工作:
SELECT vid, COUNT(vote.id) AS HIDDEN vote_count
FROM VideoVote\Video\Video vid
LEFT JOIN vid.votes vote
GROUP BY vid.id
ORDER BY vote_count DESC