我有 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`))
这不起作用,子查询返回多行。
为什么这样?我该如何解决?