- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在制作一个用于发送短信的小型网络应用程序。我必须向用户显示他们上次发送的短信(例如 Android、iOS 中的短信应用...)
我的三张表:
--------- ----------- -----------
| 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 请求有效。我通过接收者名称获取用户发送给它的最后一条短信。但我只收到接收者出现在索引表中的短信。所有发送给未在此数据库中保存电话号码的接收者的短信均不会显示。
我知道我的LEFT OUTER JOIN 索引
有误。但是
那么我怎样才能得到接收者发送的最后一条短信,按 last_sent 排序,电话号码是否保存在索引中?
谢谢。
最佳答案
将 WHERE 子句移动到 LEFT OUTER JOIN 的 ON 子句中
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
AND I.user_id = ?
ORDER BY temp.last_sent DESC
关于php - 在 SMS 应用程序中获取接收者的最后一条消息 - SQL 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17359962/
我正在尝试每 60 秒运行一次 CPU 密集型任务。我正在使用带有 PendingIntent 的 AlarmManager,` Intent intent = new Intent(Main
嗨,我正在一个项目中,我使用table_calender创建事件并将其保存在数据库中,我已经成功添加了数据库,然后在数据库中,当我必须检索它们时,当数据库中只有一个事件时,就会出现问题。根据日历显示制
我想构建一个 Sender-Receiver,每个都有两个 PartialView,并通过 Controller 中的发送方法连接它们。 Ajax 操作调用需要必须重新呈现的 div 的 Id。但我希
我目前正在尝试在 UIPickerView.subviews 中找到一个 UIPickerTable ...所以我遍历并执行 isKindOfClass:[UIPickerTable class] .
我正在尝试找到一种解决方案来控制我构建的 Android 应用程序中的 vpn 连接。到目前为止,我可以找到以下结果: 从 Android 版本 2.3.x 开始,无法通过 intents 控制 an
我可以找到大量链接两个调用的示例,但我有 3 个 http 调用使用前一个调用的数据一个接一个地进行。 我有两个人在使用 flatMap 所以: call1(params) .flatMap((r
我是 Azure 服务总线的新手,刚刚按照下面链接中的 MS 指南操作,运行了 2 个 .NET Core 控制台应用程序。一个作为发送者,另一个作为接收者/消费者。 https://learn.mi
我正在尝试从firestore中的flutter中检索单个文档,当存在文档时,它应该返回数据,而当不存在文档时,它应该返回null数据,到目前为止,我尝试过什么: @override Widg
我在使用 Flutter 设置使用电子邮件和密码注册时遇到问题。我让它登录新用户并保存他们的 Firebase 身份验证信息,但它不会将任何配置文件数据保存到 Firebase 存储部分。我不确定我在
我是一名优秀的程序员,十分优秀!