Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.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
一对多PGSQL选择为单行,动态行数映射到列_Sql_Postgresql - Fatal编程技术网

一对多PGSQL选择为单行,动态行数映射到列

一对多PGSQL选择为单行,动态行数映射到列,sql,postgresql,Sql,Postgresql,我有两个表中的数据 Order -> Order Items 第一个表具有主键id id name 1 order1 2 order2 3 order3 第二个表将表1中的order_id作为外键 name order_id item1 1 item2 2 item2 3 我现在运行的查询是 SELECT a.id, a.generated_from, b.price FROM orders AS a INNER

我有两个表中的数据

Order -> Order Items
第一个表具有主键id

id name 
1  order1  
2  order2
3  order3
第二个表将表1中的order_id作为外键

name   order_id 
item1  1
item2  2
item2  3
我现在运行的查询是

SELECT a.id,
       a.generated_from,
       b.price
FROM   orders AS a
       INNER JOIN order_data AS b
               ON a.id = b.order_id
但它给了我

id    name      order_data
 1   order1    item1
 1   order1    item1
 1   order1    item1
 2   order2    item1
 2   order2    item1
 3   order3    item1
 3   order3    item1
 3   order3    item2
 3   order3    item2
我希望得到的结果数据是:

id   order_name         order_data1    order_data2 
 0     order1           item1           item2
 1     order2           item1           item2
 2     order3           null            item2

此示例数据在此联接上没有给出这样的结果。此外,如果样本数据和当前结果都存在这种关系,您希望order1如何包含item2?听起来你想做透视表?扩展为PostgreSQLsample数据提供了这样的功能。示例数据是根据我希望的结果手动创建的。我刚刚查看了crosstab函数,它似乎返回3列,但我希望作为结果集返回3列以上