ПРИСОЕДИНЯЙТЕСЬ к 2 столам (голосование) Mysql, переполнение стека

Здравствуйте, у меня есть 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_id в Table 3 это id из Table 2

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

1

Решение

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

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]