我想在我的网站上进行调查,并且我希望每个调查问题仅向用户(注册和登录)显示一次(如果回答)。所以我做了2张桌子。

surveyQuestions(表1中包含每个问题的数据):


surveyId

等等


surveyAnswers(表2,其中包含每个用户对问题的回答):


surveyId(=表1中的surveyId)
用户身份
等等...


我需要从表surveyQuestions中选择1个问题,该问题尚未得到登录用户的答复(答案存储在surveyAnswers中)。浏览器中的UserId使用$_SESSION['id']处理。

我尝试了不同的JOIN方法,但是没有运气,我现在迷路了。

非常感谢你。

最佳答案

假设您在问题表中有不同的问题,并且答案表中每个用户有多个重复的问题,那么您应该可以这样做。.获取特定用户所有已回答问题的调查ID他们还没有使用NOT IN来回答

SELECT whatever_you_want
FROM surveyQuestions
WHERE surveyId NOT IN(
    SELECT surveyId
    FROM surveyAnswers
    WHERE userId = $id -- # -- whatever your filtering id is here
)
LIMIT 1

10-04 10:54