一对多连接在 postgres 中返回单行
Posted
技术标签:
【中文标题】一对多连接在 postgres 中返回单行【英文标题】:One to Many join returns single row in postgres 【发布时间】:2017-08-21 10:29:55 【问题描述】:我尝试浏览了许多页面,但无法找到我的问题的结果。需要以下场景的解决方案,当前使用需要一些增强的左连接。
例如:
【问题讨论】:
您使用的是 mysql 还是 Postgresql?不要标记未涉及的产品。 并向我们展示您当前的查询尝试。 感谢@jarlh,我正在使用 postgresql,这是当前查询,从 Table_1 t 中选择 t.PKID 作为 ID,t.DATA 作为 DATA,t.U_DATA 作为 DATA,t.U_VALUE 作为 VALUE left join Table_2 v on t.PKID = v.PKID_FROM_TABLE_1 where t.text = 'text'; 请阅读meta.***.com/questions/285551/… 和接受的答案 【参考方案1】:一种方法是条件聚合:
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,适用于大多数数据库。
【讨论】:
以上是关于一对多连接在 postgres 中返回单行的主要内容,如果未能解决你的问题,请参考以下文章
AWS Amplify GraphQL - 一对多连接在查询时返回空列表