所以我现在已经好几个小时没有运气,而不是数据库专家,所以以为有人可以在这里帮忙?
基本上我有一个由问题,匹配答案,用户和用户组组成的数据库。
我试图选择所有问题,其中每个团队中的用户尚未在答案表中获得记录。
E.g。如果第1组用户已回答问题2,则不会为该组中的任何其他用户选择。
这是我到目前为止的尝试:
SELECT q.*
FROM questions q
LEFT JOIN answers a ON q.id = a.question
#LEFT OUTER JOIN answers a ON q.id = a.question
LEFT JOIN people p ON a.user = p.id
LEFT JOIN groups g ON p.group = g.id
WHERE
q.category = 'food'
AND
g.id = (SELECT group FROM people WHERE id = 1)
AND
a.id IS NULL;
我猜这是我加入群体和群体的问题,但并不完全确定。
答案 0 :(得分:0)
一个解决方案:
SELECT *
FROM questions
WHERE id NOT IN (
SELECT DISTINCT a.question
FROM answers a
JOIN people p ON a.user = p.id
JOIN groups g ON p.group = g.id
WHERE g.id=1
)