基于sender_id参数关联event与invite表的SQL查询需求
解决方案
你可以使用LEFT JOIN关联两张表,既保留所有事件记录,又能匹配到当前用户作为发送者的邀请状态:
SELECT event.*, invite.receiver_approved FROM event LEFT JOIN invite ON event.id = invite.event_id AND invite.sender_id = $1; -- $1 是传入的userId参数
说明
event.*会返回event表的所有字段LEFT JOIN确保即使某个事件没有当前用户发送的邀请记录,该事件也会被保留,此时receiver_approved字段值为NULL- 如果只需要包含当前用户发送过邀请的事件,将
LEFT JOIN替换为INNER JOIN即可
内容的提问来源于stack exchange,提问作者Alex Shulgin
相关产品推荐
相关产品推荐

