连接表并返回带有最新时间戳的行

时间:2019-07-11 19:28:33

标签: mysql subquery sql-order-by

我有两个表:

表1:产品

id
product_title

表2:product_stats

id
product_id
stock
timestamp

我想加入product_stats表并显示最新时间戳的股票。

这是我到目前为止所得到的。

SELECT `p`.*, `s`.*
FROM `product` `p`
INNER JOIN (SELECT `stock`, `product_id`, `timestamp`
FROM `product_stats`
ORDER BY `timestamp` DESC
 LIMIT 1) s ON `s`.`product_id` = `p`.`id`

在过去的几天里一直在为此苦苦挣扎,因此非常感谢您提供解决方案!

更新/修复

当然,由于某种原因,当我最终发布问题时,我终于找到了解决方案。在这里检查:

SELECT    p.product_title, st.timestamp, st.stock
FROM      product p
JOIN      (
              SELECT    MAX(id) max_id, product_id 
              FROM      product_stats
              GROUP BY  product_id
          ) c_max ON (c_max.product_id = p.id)
JOIN      product_stats st ON (st.id = c_max.max_id)

0 个答案:

没有答案