簡體   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