我有 2 张桌子:
sms_send
有以下列:
created_at, order_id, sms_id, mobile, msg
sms_msg
有以下列id, short_desc
。
sms_id
对应于id
中sms_msg
。
sms_send
可以有多个相同的行order_id
,但sms_id
每个记录可能(不)相同。
sms_msg
将只有唯一id
的 s。
我想加入这两个表(仅在 2013 年 7 月 1 日之后创建的行,使用以下信息:
对于 each order_id
,从另一个表中获取sms_id
并连接short_desc
,但只返回最近的记录。
order_id
因此,我将拥有每个相关联的最新记录short_desc
。
这是我的尝试:
SELECT
*,
`sms_msg`.`short_desc`
FROM
`sms_send`
INNER JOIN
`sms_msg`
ON
`sms_send`.`sms_id` = `sms_msg`.`id`
WHERE
`created_at` > '2013-07-01 00:00:00'
HAVING
`created_at` = (SELECT `created_at` FROM `sms_msg` GROUP BY `id` HAVING `created_at` = MAX(`created_at`))
这不起作用,子查询返回多行。
为什么这样?我该如何解决?