检查SQL数据库中不存在的值

Ted*_*iee 5 php mysql sql

我对MySQL表有疑问.
我有2个表(用户(user_id和其他行)和答案(id,answer_id和user_id))

我想检查一下,用户没有回答哪些问题(例如,在答案表中存在5行 - 4,6,8,1,3(但问题是10),我想从数据库值中获取2,5,7,9,10).

如何编写这样的查询?我尝试过JOIN,但一切都没有成功!

kik*_*s73 5

假设您有问题和答案表,这是标准的TSQL解决方案:

SELECT Q.QUESTION_ID 
FROM   QUESTIONS Q LEFT JOIN ANSWERS A ON Q.QUESTION_ID = A.QUESTION_ID 
WHERE  A.QUESTION_ID IS NULL 
Run Code Online (Sandbox Code Playgroud)


Zio*_*uas 3

或者使用LEFT JOIN,速度更快。

SELECT q.id
  FROM question q
  LEFT JOIN answers a
    ON a.question_id = q.id
  WHERE a.id IS NULL
Run Code Online (Sandbox Code Playgroud)