有三个表格:
events
,users
和subscriptions
我正在尝试查询数据库以提取一些字段(请参阅select语句)。
用户表关系:
问题在于并非每个用户在订阅表中都有相应的条目。我想显示所有有活动的用户 - 无论他们是否有订阅。
SELECT subscriptions.plan, subscriptions.created_at, subscriptions.expires_at, users.first_name, events.subdomain, events.heading
FROM users
LEFT OUTER JOIN subscriptions ON users.id = subscriptions.user_id
LEFT OUTER JOIN events ON users.id = events.user_id
UNION
SELECT subscriptions.plan, subscriptions.created_at, subscriptions.expires_at, users.first_name, events.subdomain, events.heading
FROM users
RIGHT OUTER JOIN subscriptions ON users.id = subscriptions.user_id
RIGHT OUTER JOIN events ON users.id = events.user_id
此查询需要一段时间才能运行,但似乎会为某些事件产生双重结果。
目前它返回所有用户,有时每个事件都有重复的条目(在实际的数据库中不是这种情况)。任何帮助表示赞赏!