选择一些不存在于另一个SELECT资源中的记录

时间:2013-01-08 13:58:34

标签: mysql select

我有两个表,一个是向用户提出的问题,另一个是对所有用户要做的所有问题,我想选择问题,具有更高的id(所以它是新的)没有被发送给给定的用户...我的意思是:

第一个表有3个字段:
     idquestioniduserid及其名称为userQuestions

otehr表名为questions,有2个字段:

`qid` and `qText`

当然qid = quesionid

对于给定的userid,如何选择未提交给userid的所有问题?

我假设我有:

`qid` = 1 , `qtext` = 'qtext1'
`qid` = 2 , `qtext` = 'qtext2'
`qid` = 3 , `qtext` = 'qtext3'

在另一张桌子上:

id = 1,questionid = 1,userid = 90

所以这个假设的SELECT应该返回 qid = 2 qid = 3

我希望我在解释中已经清楚了......

2 个答案:

答案 0 :(得分:3)

SELECT * FROM questions WHERE qid NOT IN(SELECT questionid FROM userQuestions WHERE userid = 90);

琐碎而简单

答案 1 :(得分:2)

试试这个:

SELECT Q.qid
FROM questions Q
 LEFT JOIN userQuestions U
   ON Q.qid = U.questionid
 WHERE Q.userid = <user ID>
     AND U.id IS NULL