关于将一个表中的id替换为另一个表的相应值后的输出数据格式



我的问题是基于这个主题(链接(,它是关于用另一个表中的相应值替换一个表的id,这对我来说很有效,但之后出现了问题。下面是我的表格,请注意与链接中的表格有一些不同。

name
+----------+-----------+-----------+
| name_id  | color_id  | shape_id  |
+----------+-----------+-----------+
|    1     |    11     |    01     |
+----------+-----------+-----------+
|    2     |    22     |    02     |
+----------+-----------+-----------+
|    3     |    33     |    03     |
+----------+-----------+-----------+
color
+----------+-------+
| color_id | color |
+----------+-------+
|    11    |   R   |
+----------+-------+
|    22    |   G   |
+----------+-------+
|    33    |   B   |
+----------+-------+
shape
+----------+-------+
| shape_id | shape |
+----------+-------+
|    01    |   S   |
+----------+-------+
|    02    |   T   |
+----------+-------+
|    03    |   C   |
+----------+-------+

这就是我想要的输出:

+----------+-----------+
|   color  |   shape   |
+----------+-----------+
|    R     |     S     |
+----------+-----------+
|    G     |     T     |
+----------+-----------+
|    B     |     C     |
+----------+-----------+

但这是我的输出:

+----------+-----------+
|   color  |   shape   |
+----------+-----------+
| (11,"R") |  (01,"S") |
+----------+-----------+
| (22,"G") |  (02,"T") |
+----------+-----------+
| (33,"B") |  (03,"C") |
+----------+-----------+

这是我尝试过的查询代码。

SELECT 
color, shape
FROM 
name
INNER JOIN 
color ON name."color_id" = color."color_id"
INNER JOIN 
shape ON name."shape_id" = shape."shape_id"

我想知道是否有一些方法可以直接将(11,"R"(替换为R,可能是通过SQL查询语法或其他方法。。。或者任何我可以用我现有的代码修改的东西。非常感谢。

在PostgreSQL中,如果你可以写没有字段或没有的表名。*那么PostgreSQL将以上述格式显示给你的字段和值,类似于数组。您必须使用*。或选择时的字段名称。

SELECT 
color.*, shape.*
FROM 
name
INNER JOIN 
color ON name."color_id" = color."color_id"
INNER JOIN 
shape ON name."shape_id" = shape."shape_id"

或者在.写入字段名称后需要

相关内容

最新更新