1
我正在嘗試構建「最近的事件」Feed並且似乎無法讓我的查詢正確,或者想出如何可能地合併兩個查詢的結果以對它們進行排序按日期。合併sql查詢以獲得按日期不同的結果
一個表格包含遊戲/,另一個表格包含這些遊戲的動作。
我正在嘗試獲取最近的事件以向用戶展示 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和他們的gameids,但是我沒有得到顯示gameid發佈時的行。
我明白,我可能需要運行兩個單獨的查詢,然後以某種方式將結果與php後合併,但我完全失去了從哪裏開始。
從不抽象自己的代碼,如果你問一個關於它的問題。 發佈您正在運行的真實查詢。此外,一對夫婦樣本行和所需的輸出也會有所幫助。 – Don 2010-02-02 01:03:47