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