我有两个表,一个是向用户提出的问题,另一个是对所有用户要做的所有问题,我想选择问题,具有更高的id(所以它是新的)没有被发送给给定的用户...我的意思是:
第一个表有3个字段:
id
,questionid
,userid
及其名称为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
我希望我在解释中已经清楚了......
答案 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