SQL:通过重复的列值为查询结果分组创建新表

时间:2017-11-13 19:30:13

标签: mysql sql

抱歉这个奇怪的问题,但我不知道如何确切地问这个问题。或者如果有类似的问题需要查看,请告诉我。

我的数据库中有以下表格。基本上它将商品的价格存储在不同的商店。每个商店将始终具有相同的商品,这意味着如果稍后添加store_id 3,4,... n值,则它们将具有相同的item_ids

+----+---------+----------+---------+
| id | item_id | store_id |  price  |
+----+---------+----------+---------+
|  1 |       1 |        1 |    74.99|
|  2 |       2 |        1 |    25.99|
|  3 |       3 |        1 |    89.99|
|  4 |       1 |        2 |    69.99|
|  5 |       2 |        2 |    39.99|
|  6 |       3 |        2 |    95.99|
+----+---------+----------+---------+

我的sql知识非常基础,但我想知道是否有办法获得这个结果。

我需要将每个store_id值添加为一列,然后在每个可用商店获取item_id的价格值,并将其放在一行中。由于store_id可能有更多值,每个值都不同

+---------+-----------+-----------+
| item_id | price for | price for |
|         | store_id 1| store_id 2|
+---------+-----------+-----------+
|       1 |     74.99 |      69.99|
|       2 |     25.99 |      39.99|
|       3 |     89.99 |      95.99|
+---------+-----------+-----------+

感谢。

1 个答案:

答案 0 :(得分:0)

你可以使用自我加入,例如:

c = a.unsqueeze(2).expand(a.size(0), a.size(1), b.size(1), a.size(2))
d = b.unsqueeze(1).expand(b.size(0), a.size(1), b.size(1), b.size(2))