Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如果一列中的值相同,则连接行_Sql_Postgresql_Entity Attribute Value - Fatal编程技术网

Sql 如果一列中的值相同,则连接行

Sql 如果一列中的值相同,则连接行,sql,postgresql,entity-attribute-value,Sql,Postgresql,Entity Attribute Value,有一个Postgres数据库,该表有三列。数据结构在外部系统中,因此我无法修改它 每个对象由三行表示(由列元素\u id标识-此列中具有相同值的行表示相同的对象),例如: key value element_id ----------------------------------- status active 1 name exampleNameAAA 1 city exampleCityAAA 1 status ina

有一个Postgres数据库,该表有三列。数据结构在外部系统中,因此我无法修改它

每个对象由三行表示(由列
元素\u id
标识-此列中具有相同值的行表示相同的对象),例如:

key     value            element_id
-----------------------------------
status  active           1
name    exampleNameAAA   1
city    exampleCityAAA   1
status  inactive         2
name    exampleNameBBB   2
city    exampleCityBBB   2
status  inactive         3
name    exampleNameCCC   3
city    exampleCityCCC   3
我想得到描述每个对象的值对。它必须是
名称
状态

对于本例,输出应如下所示:

exampleNameAAA   | active
exampleNameBBB   | inactive
exampleNameCCC   | inactive

解决此问题的最佳方法是什么?

您可以使用自联接

select a.value as name,
       b.value as status
from the_table a 
  join the_table b 
    on a.element_id = b.element_id 
   and b."key" = 'status'
where a."key" = 'name';
在线示例: