假设我有电子邮件和优先级表:
优先级表字段:
Fields: uid, priority
电子邮件表格字段:
Fields: id, uid, content
每个用户都有很多电子邮件.在脚本中,我根据用户的优先级(通过加入2个表)来获取用户的电子邮件.但是当我批量获取并且具有最高优先级的用户在队列中有1000个邮件时问题就出现了.第二个用户的优先级为99.我应该发送最多2个具有最高优先级的用户的电子邮件,因为在第一个用户的第三个记录中,他的优先级将是97且低于第二个用户.
如何解决这个问题呢?我正在用PHP编程,所以如果在PHP中更好地解决该解决方案,请告诉我如何.
这是主要查询:
select * from emails e left join by priority p on e.uid=p.uid order by priority DESC
EDIT1:
电子邮件表格中的数据:
id uid email_content
1 321 some example data
2 434 some other example data
3 321 another from first user
4 321 again another from 321
优先级表中的数据如下:
id uid priority
1 321 100
2 434 99
uid等于321的用户最初具有最高优先级,但不是所有电子邮件都是如此.发送第一封电子邮件时,优先级应为99,并且在第二封电子邮件优先级等于98之后.现在不应发送第三封电子邮件,并且具有434的uid的用户的电子邮件具有最高优先级.
由于我已经获取了10条记录,因此未获取更新的优先级!