3
我正在製作一個小型web應用程序來發送短信。我必須向用戶展示他們的最後發送的短信(如在安卓,iOS的簡訊應用程式...)SMS應用程序中的接收器獲取最後的消息 - SQL請求
我的三個表:
--------- ----------- -----------
| users | | sms | | indexes |
--------- ----------- -----------
id id id
.. user_id user_id
receiver phone_n
created_at name
我已經做了一個SQL請求來獲取最後發送短信按照索引表的名稱/電話號碼分組:
SELECT S.receiver, S.message, I.name, temp.last_sent, I.id
FROM sms S
INNER JOIN (
SELECT receiver, user_id, MAX(created_at) AS last_sent
FROM sms
WHERE user_id = ?
GROUP BY receiver, user_id
) temp
ON S.receiver = temp.receiver
AND S.user_id = temp.user_id
AND S.created_at = temp.last_sent
LEFT OUTER JOIN indexes I ON S.receiver = I.phone_number WHERE I.user_id = ?
ORDER BY temp.last_sent DESC
此SQL請求起作用。我通過接收者名稱獲取用戶發送給它的最後一條短信。 但是我只收到SMS在接收器出現在索引表中。 沒有顯示發送給沒有保存在這個數據庫中的電話號碼的接收者的所有短信。
我知道我在我的LEFT OUTER JOIN indexes
上犯了一個錯誤。但是
那麼我怎樣才能得到接收者發送的最後一條短信,按last_sent排序,保存的電話號碼還是不在索引中?
謝謝。
工程就像一個魅力,謝謝你! – netvision73
你的岩石@Kickstart – EpokK