我想在我的网站上进行调查,并且我希望每个调查问题仅向用户(注册和登录)显示一次(如果回答)。所以我做了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