2012-01-18 91 views
0

我有一个问题答案表。 此表包括如何从一个表中查找值以限制其他表?

ID,idOfQuestion和用户

问题表包括

ID,消息等。

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

注:ifOfQuestion在回答=有问题

ID,这都应该是SQL

+0

你好罗伯特,这SQL?你能否提供直到现在的代码?听起来像是一个非常基本的问题,你可以在SQL软件的文档中稍加阅读。 – 2012-01-18 08:38:39

回答

1

我不只会返回问题;吨知道我已经明白你的问题,但看看这个查询。

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

如果您想了解哪些问题自己还没有回答,您可以使用一个外部联接

例如

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

使用LEFT JOIN与WHERE ... IS NULL这样,意味着那里是在答案表中没有匹配的行对那个问题+用户ID

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') 
相关问题