加入2个表(投票)Mysql、PHP
你好,我有3张桌子,但我只需要2张桌子的帮助 第一名是冠军。这张表中有100多个名字 第二个表是champion_名称,第一个表有昵称 第三张表是冠军名单和投票。有人投票支持昵称。如果我喜欢昵称,就竖起大拇指,或者竖起大拇指 在我的网站上,我有一个网站,在那里我可以看到一个完整的名单表1。共有2列。第一个是正常名称表1,第二个是昵称表2。现在我想在第2列中显示最好的昵称。实际上这是随机的,但我只想显示最好的昵称 我可以显示所有的名字,这不是问题所在。但是,如果我只想显示最好的昵称,我不知道如何加入2个表(投票)Mysql、PHP,php,mysql,sql,database,voting,Php,Mysql,Sql,Database,Voting,你好,我有3张桌子,但我只需要2张桌子的帮助 第一名是冠军。这张表中有100多个名字 第二个表是champion_名称,第一个表有昵称 第三张表是冠军名单和投票。有人投票支持昵称。如果我喜欢昵称,就竖起大拇指,或者竖起大拇指 在我的网站上,我有一个网站,在那里我可以看到一个完整的名单表1。共有2列。第一个是正常名称表1,第二个是昵称表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_unlike=1表示like,-1表示不喜欢,0表示什么都不是
例如:
Table 2: 50, 2, 4, Test
Table 3: 1, 3, 50, 1,
我喜欢表2的名字。因此表3中的名称_id就是表2的id
那么我怎样才能和JOIN一起做到这一点呢?
你能帮帮我吗。像这样的东西应该可以 这个想法是先分析每个昵称的投票数。然后通过以下方式选择最大投票分数:
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)