LEFT JOIN 到最新行

LEFT JOIN to newest row

我正在尝试从一个 table 获取数据和第二个 table 的附加数据,但是在第二个 table 我有很多记录连接到第一个 table 的记录,我想要拿最新的。

首先 table 我保留产品,其次我保留价格和数据。我要拿实际(最新)价格的产品。

产品table:

ID | NAME
---+----------
1  | "jacket"
2  | "pants"

价格table:

ID | PRODUCT_ID | DATE       | PRICE
---+------------+------------+-------
1  | 1          | 2015-05-12 | 200
2  | 1          | 2015-07-12 | 100
3  | 2          | 2015-03-12 | 60
4  | 2          | 2015-08-12 | 90

预期结果:

1, "jacket", 100
2, "pants", 90

我该怎么做?

实际上我找到了解决方案 - 但有 2 个子查询。不太好看

找到每个价格的最大日期,然后与其余表进行内部联接。

SQL Fiddle

SELECT aa.id, aa.name, bb.price
FROM products AS aa
INNER JOIN prices AS bb
ON aa.id = bb.product_id
INNER JOIN (
    SELECT product_id, MAX(date) AS max_date
    FROM prices AS cc
    GROUP BY product_id
) AS _aa
ON aa.id = _aa.product_id
WHERE bb.date = _aa.max_date;