postgres 加入最大日期

bop*_*ard 4 sql postgresql aggregate inner-join

我需要构建一个联接,为我提供每种产品的最新价格。为了示例的目的,我极大地简化了表结构,每个表的行数将达到数百万。我之前在这方面的尝试并不是非常有效。

产品

价格

Joa*_*son 11

在 PostgreSQL 中,您可以尝试DISTINCT ON仅按降序获取每个产品 id 的第一行create_date

SELECT DISTINCT ON (products.id) products.*, prices.* 
FROM products 
JOIN prices 
  ON products.id = prices.product_id 
ORDER BY products.id, create_date DESC
Run Code Online (Sandbox Code Playgroud)

(当然,除了说明目的之外,您当然应该选择您需要的确切列)