[英]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.