我想获取用户没有看到的前10个问题。 为了做到这一点,我需要将该用户看到的问题存储到一个名为user_questions的表中
所以,我的查询现在是:
SELECT * from questions WHERE questions.id NOT IN (select question_id from user_questions where user_id=1) LIMIT 0, 10
据我所知,与类似的连接查询相比,此查询应该更慢。如何构造产生相同结果的连接查询?
答案 0 :(得分:3)
等效的连接查询是:
select q.*
from questions q left outer join
user_questions uq
on uq.question_id = q.id and
uq.user_id = 1
where uq.user_id is null
limit 0, 30
但是,有一点需要注意,结果不是随机排列的。通常使用limit
子句,您还可以指定order by
。