Я пытаюсь создать фид 'недавних событий' и, похоже, не могу ни получить правильный запрос, ни выяснить, как можно объединить результаты двух запросов, чтобы отсортировать их по дате.
Одна таблица содержит игры /, а другая таблица содержит действия этих игр /.
Я пытаюсь показать недавние события пользователям
1) действия, предпринимаемые над играми, которые являются общедоступными (опубликованы)
2) когда новая игра создается и публикуется.
Итак, моя таблица действий имеет
actionId, gameid, userid, actiontype, lastupdate
Мой игровой стол имеет
gameid, startDate, createdby, published, lastupdate
В настоящее время у меня есть такой запрос (я надеюсь, что он упрощен).
SELECT actionId, actions.gameid, userid, actiontype, actions.lastupdate
FROM actions
JOIN
(
SELECT games.gameid, startDate, createdby, published, games.lastupdate
FROM games
WHERE
published=1 AND
lastupdate>today-2
)
publishedGames on actions.gameid=games.gameid
WHERE
actions.type IN (0,4,5,6,7) AND
actions.lastupdate>games.lastupdate and
published=1 OR
games.lastupdate>today-2 AND
published=1
Этот запрос ищет действия из опубликованных игр, в которых действие имело место после публикации игры. Это в значительной степени заботится о первой вещи, которую нужно показать.
Однако мне также нужно получить результаты
SELECT games.gameid, startDate, createdby, published, games.lastupdate
FROM games
WHERE
published=1 AND
startDate>today-2
, чтобы я мог включить в список действий, когда будет опубликована новая игра.
Когда я запускаю запрос в том виде, в котором он написан, я получаю все actionids и их gameide, но у меня нет строки, которая показывает gameid, когда он был опубликован.
Я понимаю, что, возможно, мне нужно выполнить два отдельных запроса, а затем каким-то образом объединить послесловие результатов с php, но я также совершенно не знаю, с чего начать.