这是我的表结构:
users:
id | email
emails:
id | subject | body
user_emails:
user_id | email_id
这是非常简单的设计。但是,我需要为所有未在 user_emails 中关联的 users.id 选择第一个(最低)emails.id。
为了显示:
users:
id | email
1 | email@domain.com
2 | test@lol.com
3 | user@test.com
emails:
id | subject | body
1 | sub1 | body1
2 | sub2 | body2
user_emails:
user_id | email_id
1 | 1
1 | 2
2 | 1
如数据所示:
- 用户 1 已收到电子邮件 1 和 2,因此选择应排除该用户。
- 用户 2 只收到了电子邮件 1,所以它应该选择用户 2 和电子邮件 2。
- 用户 3 没有收到任何电子邮件,所以它应该选择用户 3 和电子邮件 1。
我将在 PHP 中执行此操作,因此如果无法单独使用 mySQL 完成任何逻辑,则应使用 PHP 编写。
提前致谢
编辑:我可能应该提到会有数千个用户 ID 和数百个电子邮件 ID。发送所有这些电子邮件的脚本将每天运行一次。因此,这应该尽可能优化。