2014-10-08 123 views
0

我有一个页面,名为问题用户被问到问题并且他/她可以选择回答问题。这些问题从名为的问题中抽取。当问题得到解答时,我的数据库中一个名为answers_questions的表格记录了回答的问题的ID和回答问题的用户的ID。这样做的目的是在用户再次访问该页面时隐藏已回答的问题。通过JOIN过滤结果

在页面加载我试图连接两个表,看看是否存在两个表,其中用户ID是登录的用户在question_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." 

我感觉到,我做错了什么,它工作正常与这一切的逻辑。任何帮助或线索将不胜感激。

回答

1

为了让悬而未决的问题,您可以使用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 
+0

谢谢作品。 – Frisbetarian 2014-10-08 08:17:15