Mysql 使用联接筛选结果

Mysql 使用联接筛选结果,mysql,join,Mysql,Join,我有一个名为问题的页面,用户可以在该页面中被问到问题,他/她可以选择回答这些问题。这些问题来自一个名为问题的表格。当一个问题得到回答时,我的数据库中有一个名为已回答的\u questions的表记录了所回答问题的id和回答问题的用户的id。这样做的目的是在用户再次访问页面时隐藏已回答的问题 在页面加载时,我尝试连接两个表,并查看问题id是否存在于两个表中,其中用户id是登录用户的id。如果id确实存在于两个表中,则不应显示每次使用的结果。问题是,当我尝试以下查询时,每次迭代它都会循环数次: SE

我有一个名为问题的页面,用户可以在该页面中被问到问题,他/她可以选择回答这些问题。这些问题来自一个名为问题的表格。当一个问题得到回答时,我的数据库中有一个名为已回答的\u questions的表记录了所回答问题的id和回答问题的用户的id。这样做的目的是在用户再次访问页面时隐藏已回答的问题

在页面加载时,我尝试连接两个表,并查看问题id是否存在于两个表中,其中用户id是登录用户的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." 
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