gpt4 book ai didi

mysql - 使用 JOIN 过滤结果

转载 作者:行者123 更新时间:2023-11-29 12:40:03 26 4
gpt4 key购买 nike

我有一个名为问题的页面,用户会被问到问题,并且他/她可以选择回答这些问题。这些问题是从名为问题的表中提取的。当问题得到解答时,我的数据库中名为 answered_questions 的表会注册所回答问题的 ID 以及回答该问题的用户的 ID。这样做的目的是当用户再次访问该页面时隐藏已回答的问题。

在页面加载时,我尝试连接两个表,并查看两个表中是否存在 question_id,其中 userID 是登录用户的 ID。如果 id 确实存在于两个表中,则它不应显示每次使用 <> 的结果。 问题是,当我尝试以下查询时,每次迭代都会循环多次:

SELECT questions.question_id, questions.user_id
FROM `questions`
JOIN `answered_questions`
ON questions.question_id <> answered_questions.question_id
WHERE answered_questions.user_id = ".$userID."

但是当我使用这个时效果很好

SELECT questions.question_id, questions.user_id
FROM `questions`
JOIN `answered_questions`
ON questions.question_id **=** answered_questions.question_id
WHERE answered_questions.user_id = ".$userID."

我感觉我在逻辑上做错了一些事情。任何帮助或线索将不胜感激。

最佳答案

要获取未解答的问题,您可以使用 LEFT JOIN :

SELECT questions.question_id, questions.user_id
FROM questions
LEFT JOIN answered_questions
ON answered_questions.question_id = questions.question_id
AND answered_questions.user_id = ".$userID."
WHERE answered_questions.question_id IS NULL

关于mysql - 使用 JOIN 过滤结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26249514/

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