Je suis en train de créer un flux 'événements récents' et je n'arrive pas à trouver la bonne réponse ou à trouver comment fusionner les résultats de deux requêtes pour les trier par date.Fusion de requêtes sql pour obtenir des résultats différents par date
Une table contient des jeux /, et une autre table contient les actions de ces jeux /. J'essaie d'obtenir les événements récents pour montrer aux utilisateurs 1) les actions prises sur les jeux qui sont publiquement visibles (publiés) 2) quand un nouveau jeu est créé et publié.
Alors, ma table d'actions a
actionId, gameid, userid, actiontype, lastupdate
Ma table de jeux a
gameid, startDate, createdby, published, lastupdate
J'ai actuellement une requête comme celui-ci (simplifiée pour une meilleure compréhension, je l'espère).
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
Cette requête recherche des actions provenant de jeux publiés dans lesquels l'action a eu lieu après la publication du jeu. Cela prend à peu près la première chose à montrer.
Cependant, je dois aussi obtenir les résultats de la
SELECT games.gameid, startDate, createdby, published, games.lastupdate
FROM games
WHERE
published=1 AND
startDate>today-2
Je peux inclure dans la liste des actions, lorsqu'un nouveau jeu a été publié. Lorsque j'exécute la requête telle que je l'ai écrite, j'obtiens tous les ID et leurs gameids, mais je n'obtiens pas une ligne qui montre le gameid quand il a été publié.
Je comprends qu'il est possible que je doive exécuter deux requêtes séparées, puis fusionner d'une manière ou d'une autre les résultats afterword avec PHP, mais je suis complètement perdu sur où commencer aussi.
Ne jamais résumer votre propre code si vous posez une question à ce sujet. Affichez la requête réelle que vous exécutez. En outre, quelques rangées d'échantillons et la sortie désirée aideraient aussi. – Don