我需要知道如何在php / mysql设置中链接两个表然后对结果进行排名?
这是我的情况.
我有一个故事表:
storyid
writerid
title
story
submitdate
和一张投票表
voteid
userid
storyid
vote
我将投票存储为1,将投票存储为-1
我正在寻找一种方法来加入这两个表,然后根据他们收到的票数对故事进行排名/排序.
我对任何关于如何操作或不同的可能数据库模式的想法持开放态度.
解决方法:
我更喜欢保持桌子名称的单数.这不是一个“故事”表;它是一个包含多行的“Story”表.
投票只能归结为一个故事,所以这是两者之间的一对多关系.我将外键放在投票表中,让它指出与之相关的故事.如果您同意,请更改您的架构:从故事表中删除voteid,并将投票中的storyid作为故事表的外键.
但话虽如此,也许您可以尝试这样的查询:
select stories.storyid, sum(vote=-1) as down, sum(vote=1) as up
from stories
inner join votes on (stories.storyid = votes.storyid)
group by stories.storyid
根据下面的ypercube评论进行了更正.
标签:php,mysql,database
来源: https://codeday.me/bug/20190626/1295816.html