我们拥有多对多关系的数据,我们的每个成员都可以选择他们正在学习的主题。此数据使用软删除模式,其中 DATETIMEarchived
字段一直保留NULL
到数据被视为已删除的时间。
我们要做的是选择用户当前未订阅的主题,忽略他们当前订阅的主题。
这是表结构:
`member`
- id
- name
- created
- updated
- archived
`subject`
- id
- name
- created
- updated
- archived
`member_subject`
- member_id
- subject_id
- created
- archived
我们拥有的基本查询结构是:
SELECT DISTINCT subject.*
FROM subject
LEFT JOIN member_subject ON member_subject.subject_id = subject.id
WHERE subject.archived IS NULL
# Not sure how to go about the rest of the WHERE clause here
ORDER BY subject.name