Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
2年前关闭。
我有3张桌子。用户表。一张诗桌。一个表格,用于跟踪已将哪些诗歌通过电子邮件发送给哪些用户。
我想编写一个MySQL查询,该查询选择一个今天未通过电子邮件发送给诗歌的用户ID,并选择一个他们以前从未收到过的Poemid。
有人能帮我吗?
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
2年前关闭。
我有3张桌子。用户表。一张诗桌。一个表格,用于跟踪已将哪些诗歌通过电子邮件发送给哪些用户。
tblUser | tblEmailed | tblPoems
------- | ----------- | --------
userid | userid | poemid
username | poemid | poemname
etc | date | etc
我想编写一个MySQL查询,该查询选择一个今天未通过电子邮件发送给诗歌的用户ID,并选择一个他们以前从未收到过的Poemid。
有人能帮我吗?
最佳答案
您需要做的第一件事就是确定今天没有通过电子邮件发送过的用户。为此,您可以使用类似以下的内容:SELECT u.userid FROM tblUser u LEFT JOIN tblemailed e on e.userid = u.userid WHERE e.date == CURDATE() AND COALESCE(e.poemid, '') == '' LIMIT 1
然后,我们将需要该user_id
来查找他们尚未收到的诗:SELECT p.poemid FROM tblPoems p WHERE p.poemid NOT IN (SELECT poemid FROM tblEmailed WHERE userid == user_id) LIMIT 1
其中user_id
是第一个查询的用户。
08-19 15:51