[英]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 3
的name_id
是Table 2
的id
那么,如何使用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.