'최근 이벤트'피드를 작성하려고하는데 올바른 쿼리를 얻지 못하거나 두 쿼리의 결과를 병합하여 정렬하는 방법을 찾을 수 없습니다 날짜별로.날짜별로 다른 결과를 얻기 위해 SQL 쿼리 병합
하나의 테이블에는 게임 /이 있고 다른 테이블에는 해당 게임 /이있는 테이블이 있습니다.
사용자에게 최근 이벤트를 표시하려고합니다. 1) 공개 게임 (게시 됨) 2) 새로운 게임이 만들어지고 게시 될 때 게임에서 취한 조치 2)
그래서, 내 행동 테이블이
actionId, gameid, userid, actiontype, lastupdate
내 게임 테이블은 내가 현재 (I 희망 쉽게 이해 간체)이 같은 쿼리를
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
의 결과를 얻을 필요가있다.
필자가 작성한대로 쿼리를 실행하면 모든 액션 ID와 해당 게임 ID가 표시되지만 게시되었을 때 gameid를 표시하는 행은 표시되지 않습니다.
두 개의 별도의 쿼리를 실행하고 결과를 PHP와 병합해야 할 수도 있음을 이해합니다.하지만 시작점을 완전히 잃어 버렸습니다.
질문을 올리는 경우 절대로 사용자 코드를 추상화하지 마십시오. 실행중인 실제 쿼리를 게시하십시오. 또한 몇 개의 샘플 행과 원하는 출력도 도움이됩니다. – Don