需要帮助从 2 个表中选择 POSTGRES

Posted

技术标签:

【中文标题】需要帮助从 2 个表中选择 POSTGRES【英文标题】:Need Help in selecting from 2 tables POSTGRES 【发布时间】:2013-12-21 05:42:46 【问题描述】:

需要关于以下场景的帮助......

表 1 名称:函数

f_id |f_name

10001 |功能 1 10002 |功能 2 10003 |功能 3

表 2 名称:function_user

fu_id |fu_user

10001 |T_User1 10001 |T_User2 10001 |T_User3 10002 |G_User1 10002 |G_User2 10002 |G_User3 10002 |G_User4 10002 |G_User5 10002 |G_User6 10003 |X_User1 10003 |X_User2

需要结果

f_id |fu_user

10001 |T_User1

     |T_User2

     |T_User3

10002 |G_User1

     |G_User2

     |G_User3

     |G_User4

     |G_User5

     |G_User6

10003 |X_User1

     |X_User2

非常感谢您的即时帮助...... :)

【问题讨论】:

【参考方案1】:

select function.f_id, function_user.fu_user from function right join function_user on f_id=fu_id

【讨论】:

它将为所有行选择 function.f_id。我只需要第一次出现的 function.f_id ......不希望 function.f_id 为所有行返回 我知道可以使用程序来完成,但我需要查询.....请任何人......【参考方案2】:

在 PostgreSQL 9.2 中有一个函数 string_agg(expression, delimiter)。可能会适合您的目标吗? 查询将类似于:

select f_id ,string_agg(fu_user,'\n') from function join function_user on f_id=fu_id group by f_id order_if_you_need;

您可以使用分隔符来调整格式,但它应该是单个字符

【讨论】:

看起来没问题...但仍然......,fu_user 将被选为单个字段 ryt?(带分隔符)......有没有其他方法我可以将它作为多个行......我认为不可能......我认为我应该继续使用自定义功能...... :(

以上是关于需要帮助从 2 个表中选择 POSTGRES的主要内容,如果未能解决你的问题,请参考以下文章

mysql插入tbl(从2个表中选择)

MySQL INSERT ... 从 1 个表中选择 2 个表

使用 mysql 别名从 2 个表中选择列

PostgreSQL ,从 2 个表中选择,但仅从表 2 中选择最新的元素

从具有 2 个外键的 2 个表中选择

使用连接从超过 2 个表中选择数据