繁体   English   中英

加入2个表格(投票)Mysql,PHP

[英]JOIN with 2 Tables (Voting) Mysql, PHP

您好,我有3张桌子,但我只需要2张桌子的帮助。

第一桌是champions 此表中有100多个名称。

第二个表是champion_names ,第一个表有昵称。

第三个表是champion_names_vote 昵称有票数。 如果我喜欢昵称,请大拇指向上或大拇指朝下。

在我的网站上,我有一个网站,可以在其中看到完整的名称列表(Table 1) 有2列。 第一个是普通名称(Table 1) ,第二个是昵称(Table 2) 现在,我想在第2列中显示最佳昵称。实际上,它是随机的,但我只想显示最佳昵称。

我可以显示所有名称,这不是问题。 但是,如果我只想显示最好的昵称,我不知道如何。

Table 2: id(AI), champ_id(this is the id for Table 1), sender_id, name

Table 3: id(AI), userid, name_id(Table 2 ID), like_dislike

like_dislike = 1表示不喜欢,-1不喜欢,0表示不喜欢。

例:

Table 2: 50, 2, 4, Test
Table 3: 1, 3, 50, 1,

我喜欢Table 2的名称。 因此, Table 3name_idTable 2id

那么,如何使用JOIN做到这一点? 你能帮我吗。

这样的事情应该可以解决问题。

想法是首先分析每个昵称的选票。 然后通过HAVING选择最高投票分数:

SELECT voteResult.name, vote as winnerVoteScore
FROM(
    select a.name_id, b.name,
    sum(IF(a.like_dislike = 1, 1, IF(a.like_dislike = 2, -1, 0 ))) as vote
    FROM champion_names_vote as a JOIN champion_names as b 
    ON a.name_id = b.ID
    GROUP BY 1
) as voteResult
GROUP BY 1 
HAVING vote = max(vote)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM