Title ---------- 1

问题描述 投票:0回答:1

我有一个这样的数据库。问题表:

QId | Title
----------
1   | SR
4   | TR
9   | AA

回答表:

RId | QId
----------
2   | 1
3   | 1
5   | 4
6   | 4
7   | 1
8   | 4

和投票表

PubId | Type
-------------
1     | P
1     | P
1     | P
1     | N
2     | N
2     | N
3     | P
4     | N
4     | N
5     | N
6     | P

答复表中的QId参考问题表的QId,投票表中的OubId参考问题表的QId或答案表的RId。我对sql有点陌生,经过很多尝试,我没有得到我想要的东西。所以我想显示的是按分数排序的问题。在问题表中,每个问题的得分是该问题及其答案的最佳得分。而分数是由该问题或答案的正票和负票之间的差异计算出来的。例如第1题的得分是2,因为第1题及其答案(2,3,7)的最佳得分就是该题本身的得分,即3-1=2。又比如第4题的得分是1,因为这道题的答案6的得分是1,比其他答案和第4题本身的得分要好。所以结果会是这样的。1, 4, 9. 目前,我只有吹出的代码,它只是显示每个问题或答案的票数。

select v.PubId, v.Type from
(select r.RId from Answer r
UNION 
SELECT q.QId from Question q
) as a 
left join Vote v on a.RId=v.PubId 
where v.PubId is not null
jquery mysql sql max sql-order-by
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.