У меня есть 4 таблицы: одна называется играми, которые включают все игры моего приложения, другая таблица представляет «шаги» игры (или уровней), где игрок может присоединиться, затем таблицу пользователей, потому что пользователь создает игрока для каждой игры, которая он присоединяется
Так что столы - это игры, шаги, игроки и пользователи. Это таблица игр:
game_id game_name
1 game1
2 game2
Это таблица шагов (тикет столбца является счетчиком определенного действия, а step_num - столбец для определенного шага по умолчанию):
step_id step_tickets step_game step_num
1 384 1 1
2 742 1 2
3 21 2 1
И это таблица игроков
player_id player_step player_user
1 2 1
Также таблица пользователей, которая имеет идентификатор и некоторую другую информацию, которая нам сейчас не нужна.
Я хотел бы получить пошаговые инструкции из таблицы шагов в зависимости от данный пользователь и игра. Например, если я даю пользователю 1 и игру 1, я хочу получить строку 2 таблицы шагов, потому что у пользователя 1 есть игрок 1, присоединившийся к шагу 2. Если я даю пользователю 2 и игру 1, у пользователя нет игрока, поэтому по умолчанию я хочу строку 1.
Я использую Mysql версию 5.6
Я пробовал с этим кодом, но ничего ... Кто-нибудь может мне помочь? Заранее спасибо и сообщите мне, если вам нужна другая информация.
SELECT
p.tickets AS mytickets,
FROM games
LEFT JOIN
(
SELECT
IF(t.step_tickets IS NULL, d.step_tickets, t.step_tickets) AS tickets,
IF(t.step_game IS NULL, d.step_game, t.step_game) AS step_game,
IF(t.step_id IS NULL, d.step_id, t.step_id) AS step_id
FROM steps
LEFT JOIN
(
SELECT
`step_tickets`,
`step_game`,
`step_id`,
FROM steps
INNER JOIN players ON (players.player_step=step_id AND players.player_user=1)
)
AS t ON t.step_id=steps.step_id
LEFT JOIN
(
SELECT
`step_tickets`,
`step_game`,
`step_id`
FROM steps
WHERE `step_num`=1
)
AS d ON d.step_id=steps.step_id
GROUP BY step_id
)
AS p ON p.step_game=games.game_id
WHERE game_id=1