Несколько объединений на одной таблице для разных пользователей - PullRequest
0 голосов
/ 26 мая 2019

У меня есть карточная игра. 4 игрока играют в каждой комнате. У меня есть 2 таблицы в моей базе данных (MySQL), как это:

Таблица № 1: «комнаты»

id: Int
playerid1: Int
playerid2: Int
playerid3: Int
playerid4: Int

Таблица № 2: «игроки»

id: Int
name: Varchar
picture: varchar

Я пытаюсь вернуть все комнаты в запросе и получить фотографии игроков одновременно. С присоединением легко получить фотографию одного игрока, но как мне сделать это для всех 4 игроков одновременно?

Результат должен выглядеть примерно так:

id = 123
playerid1 = 1
playerid2 = 2
playerid3 = 3
playerid4 = 4
playerpic1 = "one.jpg"
playerpic2 = "two.jpg"
playerpic3 = "three.jpg"
playerpic4 = "four.jpg"

Заранее спасибо

1 Ответ

0 голосов
/ 26 мая 2019

Вам нужно 4 объединения таблицы rooms до players:

select r.id,
  p1.id, p1.picture,
  p2.id, p2.picture,
  p3.id, p3.picture,
  p4.id, p4.picture
from rooms r
inner join players p1 on p1.id = r.playerid1
inner join players p2 on p2.id = r.playerid2
inner join players p3 on p3.id = r.playerid3
inner join players p4 on p4.id = r.playerid4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...