0

我想获取用户没有看到的前 10 个问题。为此,我需要将该用户看到的问题存储到名为 user_questions 的表中

所以,我的查询现在是:

SELECT * from questions WHERE questions.id NOT IN (select question_id from user_questions where user_id=1) LIMIT 0, 10

据我所知,与类似的联接查询相比,此查询应该更慢。如何构建产生相同结果的连接查询?

4

1 回答 1

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.

于 2012-12-03T17:07:43.720 回答