如何检查mysql查询中的2个唯一字段
我有两张桌子: 问题:如何检查mysql查询中的2个唯一字段,mysql,Mysql,我有两张桌子: 问题: ----------------------- active | question | qid ----------------------- 1 | "bla" | 5 1 | "bla" | 6 1 | "bla" | 7 0 | "bla" | 8 答复: ----------------------- userid | answer | qid -----------------------
-----------------------
active | question | qid
-----------------------
1 | "bla" | 5
1 | "bla" | 6
1 | "bla" | 7
0 | "bla" | 8
答复:
-----------------------
userid | answer | qid
-----------------------
1 | "bla" | 6
2 | "bla" | 5
userid和qid是唯一的
我希望活动的问题(问题,qid)是1,并且用户x没有回答它
我有密码:
SELECT DISTINCT questions.qid , questions.question
FROM questions
JOIN answers on (answers.userid = 1)
where questions.active = 1 and (answers.qid != questions.qid)
但是它只适用于用户1(给我们qid:5,7)。
我想升级代码,这对用户3也很好(将给我们qid:5,6,7)
谢谢这是一个您可以使用的案例:
SELECT DISTINCT q.qid , q.question
FROM questions q
WHERE q.active = 1
AND NOT EXISTS (
SELECT 1 FROM answers
WHERE userid = 1 AND qid = q.qid
)
您可以将
WHERE userid=1
更改为WHERE userid IN(1,2,3)
,以检查是否有多个用户。这是一种可以使用的情况:
SELECT DISTINCT q.qid , q.question
FROM questions q
WHERE q.active = 1
AND NOT EXISTS (
SELECT 1 FROM answers
WHERE userid = 1 AND qid = q.qid
)
您可以将WHERE userid=1
更改为WHERE userid IN(1,2,3)
以检查多个用户