2012-01-18 3 views
0

У меня есть таблица ответов на вопросы. эта таблица содержитКак найти значения из одной таблицы для ограничения другой таблицы?

ID, idOfQuestion, и пользователь

таблицы вопросов включает

ID, сообщение и т.д ..

то, что я хочу сделать, это найти определенный пользователь, а затем найти все idOfQuestions, на которые он или она ответил, тогда я хочу найти в таблице вопросов все вопросы, которые НЕ ИМЕЮТ те же самые idOfQuestions из первого запроса.

Примечание: ifOfQuestion в ответ = ID в вопросе

и все это должно быть в SQL

+0

Здравствуйте Роберт, который SQL? Не могли бы вы предоставить код, который у вас есть до сих пор. Похоже, что это очень простой вопрос, который вы можете решить с небольшим чтением в документации вашего программного обеспечения SQL. –

ответ

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, как это, означает, что он будет возвращать только вопросы, где нет соответствующей строки в таблице Ответы на этот вопрос + UserId

0

И НЕ СУЩЕСТВУЕТ вариант:

SELECT q.* 
FROM Questions q 
WHERE NOT EXISTS 
(SELECT NULL FROM Answers a 
WHERE q.ID = a.idOfQuestion AND a.User = 'UserIdValue') 
Смежные вопросы