gpt4 book ai didi

php - JOIN with 2 Tables (Voting) Mysql, PHP

转载 作者:行者123 更新时间:2023-11-30 22:55:54 24 4
gpt4 key购买 nike

您好,我有 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 的名字.所以 name_idTable 3idTable 2

那么我怎样才能用 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)

关于php - JOIN with 2 Tables (Voting) Mysql, PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26384419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com