2014-10-15 1 views
1

Привет, у меня есть 3 таблицы, но мне нужна помощь только с 2 таблицами.JOIN with 2 Tables (Voting) Mysql, PHP

Первый стол champions. В этой таблице представлено более 100 имен.

Вторая таблица champion_names есть псевдонимы для первой таблицы.

Третий стол champion_names_vote. Есть голоса за прозвища. Thumb up, если мне нравится прозвище или палец вниз.

На моем сайте у меня есть сайт, на котором я могу увидеть список, полный Имен (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_id в Table 3 является id из Table 2

Так как я могу сделать это с помощью JOIN? Можете ли вы мне помочь.

ответ

0

что-то вроде этого должно сделать трюк.

Идея состоит в том, чтобы проанализировать ваши голоса за прозвище в первую очередь. Затем выберите Максимальный размер для голосования на 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) 

 Смежные вопросы

  • Нет связанных вопросов^_^