我有两张表,1.(收件箱)保留发送报告,2.(发件箱)保留发送短信。我无法添加外键并更改数据库结构。
收件箱
id number smsdate
-- ---------- -------------------
1 600600600 2013-08-16 11:51:18
2 700600600 2013-08-16 11:51:16
3 600600600 2013-08-16 11:51:14
4 900600600 2013-08-16 11:51:12
发件箱
id number processed_date
--- ---------- -------------------
167 600600600 2013-08-16 10:51:10
288 700600600 2013-08-16 09:51:10
356 600600600 2013-08-16 08:51:10
473 900600600 2013-08-16 07:51:10
536 600600600 2013-08-16 06:51:10
我现在将加入已发送消息的报告。我可以这样做,将表格发件箱的发送数量和日期与相同的号码和最近的收件箱收件日期进行比较。我相信报告会井井有条。
如果我使用
SELECT outbox.id, inbox.id, outbox.number, inbox.number,
outbox.processed_date, inbox.smsdate FROM outbox
LEFT JOIN inbox ON inbox.number= outbox.number
AND inbox.smsdate >= outbox.processed_date
GROUP BY outbox.id
ORDER BY outbox.id DESC;
我得到奇怪的结果并且报告重复。因为如果我发送了 3 个,收到了 2 个,对于相同的号码,它应该是一个空的。而不是后者的空白,它复制了我的前一个。
我尝试添加。
GROUP BY outbox.id, inbox.id
但情况更糟。
这是解决这个问题的方法吗?
期望的输出:
输出
outbox.id inbox.id
--------- ----------
167 NULL
288 2
356 1
473 4
536 3