2017-08-21 10 views
-2

我试图通过很多页面,但无法找到我的问题的结果。对于下面的场景需要解决方案,目前使用需要一些增强的左连接。一对多连接返回postgres中的单行

例如:

Click on the link to see the example

+1

您使用的是MySQL还是Postgresql?不要标记不涉及的产品。 – jarlh

+2

并向我们展示您当前的查询尝试。 – jarlh

+0

感谢@jarlh,我使用PostgreSQL和下面是当前查询的ID, t.DATA作为数据, t.U_DATA作为数据, t.U_VALUE的价值, 从TABLE_1牛逼 选择左侧 t.PKID加入 表2 v on t.PKID = v.PKID_FROM_TABLE_1 其中t.text ='text'; – Sunil

回答

0

一种方法是有条件聚集:

SELECT PKID_FROM_TABLE_1, 
     MAX(CASE WHEN U_DATA = 'unique0' THEN U_VALUE END) as unique0, 
     MAX(CASE WHEN U_DATA = 'unique1' THEN U_VALUE END) as unique1, 
     MAX(CASE WHEN U_DATA = 'unique2' THEN U_VALUE END) as unique2, 
     MAX(CASE WHEN U_DATA = 'unique3' THEN U_VALUE END) as unique3, 
     MAX(CASE WHEN U_DATA = 'unique4' THEN U_VALUE END) as unique4 
FROM example 
GROUP BY PKID_FROM_TABLE_1; 

这是ANSI标准的SQL,并在大多数数据库。