添加列,但保留特定的ID

时间:2019-04-07 21:06:57

标签: postgresql

我有一个表“ Listing”,看起来像这样:

| listing_id |                   amenities                      |
|------------|--------------------------------------------------|
|  5629709   | {"Air conditioning",Heating, Essentials,Shampoo} |
|  4156372   |   {"Wireless Internet",Kitchen,"Pets allowed"}   |

还有另一个表“ Amenity”:

| amenity_id |                     amenities                    |
|------------|--------------------------------------------------|
|      1     |                 Air conditioning                 |
|      2     |                      Kitchen                     |
|      3     |                      Heating                     |

有没有办法像这样将两个表连接到一个新的“ Listing_Amenity”中:

| listing_id | amenities |
|------------|-----------|
|  5629709   |     1     |
|  5629709   |     3     |
|  4156372   |     2     |

1 个答案:

答案 0 :(得分:3)

您可以使用嵌套:

CREATE TABLE Listing_Amenity
AS
SELECT l.listing_id, a.amenity_id
FROM Listing l
, unnest(l.ammenities) sub(elem)
JOIN Amenity a
  ON a.ammenities = sub.elem;

db<>fiddle demo