2013-01-08 45 views
0

我有两张表,其中一个充满了向用户提出的问题,另一个充满了对所有用户所做的所有问题,我想选择的问题,具有较高ID(所以它是新的)并没有被发送到指定的用户...我的意思:选择另一个SELECT资源中不存在的记录数

第一台有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

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

我希望我一直在解释清楚......

回答

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

是平凡和简单

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 
相关问题