繁体   English   中英

PostgreSQL选择查询和子查询

[英]PostgreSQL select query with subquery

首先,我必须为不好的话题道歉。 我没有更好的主意。

对于我网页上的内部消息传递,我有以下表格:

messages (id, subject, owner_id)
messages_recipients (id, recipient_id, message_id)

我需要使用一个附加字段来获取特定用户的所有消息,该字段包含特定消息的所有收件人ID。

例如:

messages:
id | subject | owner_id
1  | test 1  | 1
2  | test 2  | 2

messages_recipients:
id | recipient_id | message_id
1  | 10           | 1
2  | 11           | 1
3  | 10           | 2

预期结果为(用户10的消息):

message_id, subject, all users that receive message with this id
1,          test 1,  10;11; 
2,          test 2,  10;

我想列出特定用户的所有消息。 为了实施答复,我还需要用户收到特定消息的信息。

认为这可以做到:

SELECT r.message_id,subject,string_agg(r.recipient_id::text,';')
FROM messages m
INNER JOIN messages_recipients r
ON r.message_id = m.id
INNER JOIN (SELECT distinct message_id from messages_recipients 
            WHERE recipient_id = 10) u
ON u.message_id = r.message_id
GROUP BY r.message_id,subject

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM