gpt4 book ai didi

mysql - 使用 NOT IN 语句的 PHP 选择查询

转载 作者:行者123 更新时间:2023-11-29 05:31:53 29 4
gpt4 key购买 nike

我在使用 SELECT 查询时遇到了一些困难,这本应该很容易。这是简化的背景:

我的数据库中有两个表。一个名为 TABLE1 的表包含三个字段:[QuestionID]、[Question]、[Answer]。第二个表名为 TABLE2,包含两个字段:[UserID] 和 [QuestionID]。

基本上,该页面的功能是当用户正确回答问题时,用户名和问题 ID 将插入到 TABLE2 中。 TABLE2 将用于从页面中省略已回答的问题,以便用户只能回答尚未回答的问题。

因此,SELECT 查询应该通过“显示 TABLE1 中所有NOT IN TABLE2”的问题来工作。这听起来很容易,但我想不通。

这是我的查询:

 $answered = mysql_query("SELECT QuestionID FROM TABLE2 WHERE Username='TESTING'");
while ($answered1 = mysql_fetch_array($answered))
{
$QuestionsToDisplay = mysql_query("SELECT * FROM TABLE1 WHERE 'QuestionID' NOT IN ('$answered1')");
}
}

我也试过:

$QuestionsToDisplay = mysql_query("SELECT * FROM TABLE1 WHERE 'QuestionID' !='$answered1'");

两个实例都显示一个结果,而它应该显示 4 个结果。

我将第一个查询放在“while”语句中,因为它返回了正确的数据(我在 TABLE2 中有两个条目用于测试目的,这就是 echo 语句显示的内容)。

所以知道我做错了什么吗?

谢谢!!

最佳答案

我认为您应该考虑使用 LEFT JOIN :

SELECT t1.* 
FROM TABLE1 t1
LEFT JOIN TABLE2 t2
ON t1.QuestionID = t2.QuestionID
AND T2.Username = 'TESTING'
WHERE t2.QuestionId is null

这将返回 Table1 中在 Table2 中没有相应记录的所有内容

关于mysql - 使用 NOT IN 语句的 PHP 选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14025868/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com