[英]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.