使用mysql和PHP,我想设置一个查询,从特定用户尚未看到的问题表中提取问题。
我有两个表,1)问题表和2)记录表。
问题表有两个字段:p_id,prob。此表包含要向用户显示的问题列表。
记录表有4个字段:record_id,user_id,p_id,num_seen。每当用户看到特定问题时,用户的id被记录(user_id),他/她看到的问题被记录(p_id)并且用户看到它的次数被记录(num_seen)。
我正在尝试编写的查询将从问题表中选择一个p_id,条件是特定用户(user_id)尚未查看此p_id。
这看起来应该很简单但是我尝试使用“WHERE problems.p_id!= records.p_id AND user_id = $ id”没有用。任何关于正确查询的建议或获得所需结果的更好方法都会很棒。
答案 0 :(得分:1)
SELECT p.*
FROM problems p
LEFT JOIN records r
ON r.user_id = 100
AND r.p_id = p.p_id
WHERE p.p_id IS NULL
AND p.p_id >= Rand() * (SELECT Max(p_id)
FROM problems)
LIMIT 1
其中100是当前的user_id。
你需要索引