如何从一个表中查找值以限制其他表?

时间:2012-01-18 08:32:12

标签: sql

我有一张问题答案表。 该表包括

ID,idOfQuestion和用户

问题表包括

ID,消息等..

我想要做的是找到某个用户,然后找到他或她已经回答的所有idOfQuestions,然后我想在问题表中搜索所有与第一个没有相同idOfQuestions的问题查询。

注意:ifOfQuestion在answer = ID中有问题

这应该都在sql

3 个答案:

答案 0 :(得分:1)

如果您想找到他们没有回答的问题,可以使用外部联接

e.g。

SELECT q.*
FROM Questions q
    LEFT JOIN Answers a ON q.ID = a.idOfQuestion AND a.User = 'UserIdValue'
WHERE a.idOfQuestion IS NULL

对WHERE使用LEFT JOIN ... IS NULL这样意味着它只返回Answers表中没有匹配行的问题+ UserId

答案 1 :(得分:1)

我不知道我清楚地理解了你的问题,但看看这个问题。

SELECT *
FROM QuestionTable
WHERE ID NOT IN
    (SELECT IDOFQuestion as ID FROM tableQuestion WHERE USER = 'USERHERE')

答案 2 :(得分:0)

NOT EXISTS变种:

SELECT q.*
FROM Questions q
WHERE NOT EXISTS
(SELECT NULL FROM Answers a 
 WHERE q.ID = a.idOfQuestion AND a.User = 'UserIdValue')