Php 检查哪些值不可用';SQL数据库中不存在

Php 检查哪些值不可用';SQL数据库中不存在,php,mysql,sql,Php,Mysql,Sql,我有一个关于MySQL表的问题。 我有两个表(用户(用户id和其他行)和答案(id、答案id和用户id)) 我想检查一下,哪些问题用户还没有回答(例如,在答案表中有5行-4,6,8,1,3(但问题是10),我想从数据库值2,5,7,9,10中取出) 如何编写这样的查询? 我试过加入,但没有成功 我想你有一个问题表格: select * from question where not exists( select 'x' from answer where answer.q

我有一个关于MySQL表的问题。
我有两个表(用户(用户id和其他行)和答案(id、答案id和用户id))

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

如何编写这样的查询?
我试过加入,但没有成功

我想你有一个
问题
表格:

select *
from question
where not exists(
    select 'x'
    from answer
    where answer.question_id = question.id
)

如果你没有一个
问题
表,那么我想没有解决方案

不是坐在mySQL数据库前面,但它应该是有意义的(你没有告诉我们你的问题列在哪里,所以我在占位符中放了一个),你的答案表似乎也必须有或应该有一个指向它正在回答的问题id的链接。如果我做了任何不正确的假设,请让我知道,我会根据需要进行编辑

Select question_id from question_table 
where question_id not in (select question_id from answers)

假设您有一个问题和答案表,这是标准的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 

或者使用左连接,速度更快

SELECT q.id
  FROM question q
  LEFT JOIN answers a
    ON a.question_id = q.id
  WHERE a.id IS NULL

你们也有问题表吗?或者任何其他与
answer\u id
相关的表?您能更清楚地演示您的表吗?我可以确认这将在MySQL中起作用;您提供答案的速度比我快。我不确定它是否是“标准SQL解决方案”,它肯定是一个解决方案,但我不会在SQL Server中使用它,例如,因为它比
不存在
慢。但在所有条件相同的情况下,这是个人的偏好。不一定在所有情况下,但根据经验,这确实可能比使用子查询快。不使用内部联接,但也有左|右联接解决了这个问题。@Piskvor:亲爱的,我使用的不是存在的,不是内部联接。右边的第二部分,与左/外连接相同,检查另一个表的NULL值,其中子句我知道您使用了什么;我的回答是“没有(其他)解决方案”。正如您在其他答案中所看到的,显然有一个。@Piskvor:我的句子:“没有解决方案”是在现有的问题表中引用的;)。我编辑了我的答案以便更好地阅读哦,好吧,我误解了你的意思;我道歉:)