【发布时间】:2014-07-24 02:04:16
【问题描述】:
假设一个用户可以有两种帖子,一个自我帖子和外部链接帖子。 两种类型都有自己的表格。每个帖子可以有多个标签。现在我正在寻找一个查询,它给我一个列表 a) 在过去 X 天内在帖子中使用的标签和 b) 制作这些标签的用户(以便向他们发送电子邮件。
这是我目前所拥有的:
SELECT users.name, users.email, tags.name
FROM users
LEFT JOIN self_posts ON users.id = self_posts.user_id AND self_posts.date < x
LEFT JOIN ext_posts ON users.id = ext_posts.user_id AND ext_posts.date < x
WHERE NOT NULL coalesce(self_posts.id, ext_posts.id)
INNER JOIN tags on ~~either self_posts/ext_posts~~.tag_id = tag.id
如您所见,我不确定如何使内部连接使用两个表中的任何一个来连接标记表。我需要对左连接使用子查询吗?
注意:我的实际查询比这更复杂,需要更多后续连接。我只是在说明问题。
【问题讨论】: