【问题标题】:SQL select latest values in a many-to-many tableSQL 选择多对多表中的最新值
【发布时间】:2018-08-19 09:33:58
【问题描述】:

如何在具有多对多关系的表中选择最新记录。 store_id,product_id 不是复合组键,所以它们会重复很多次。

id store_id product_id
1     1         1
2     2         1  
3     1         1
4     3         1
5     2         1
6     3         1

结果应该是这样的:

id store_id product_id

3     1         1
5     2         1
6     3         1

为了简单起见,我只添加了 1 个产品,但在实际情况下有很多产品。所以结果应该是这样的: 对于每个 store_id,显示最新添加的 products_id。

例如

id store_id product_id

11     1         1
20     1         2
40     1         3
41     1         4
53     2         1
61     2         2
62     2         3
63     2         4
70     3         1
71     3         2
72     3         3
73     3         4

【问题讨论】:

  • 请标记 DBMS。

标签: sql select group-by pivot-table


【解决方案1】:

我看不出这与数据透视表有什么关系。这似乎是一个基本的聚合:

select max(id) as id, store_id, product_id
from t
group by store_id, product_id
order by store_id, max(id);

【讨论】:

  • 我编辑了这个问题,它不一定是数据透视表。
  • @Victordb 。 . .这种类型的表通常称为联结表或关联表。它用于实现多对多关系。
猜你喜欢
  • 2022-09-23
  • 2011-03-30
  • 1970-01-01
  • 2020-03-23
  • 2010-12-31
  • 2012-05-25
  • 2018-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多