выберите вопросы, на которые нет ответов - PullRequest
1 голос
/ 28 февраля 2011

У меня простой запрос, сомнение.

Question Table
qid question
1   ques1
2   ques2
3   ques3
4   ques4
5   ques5
6   ques6
7   ques7

Answer Table
ansid qid answer
1     1   ans1
2     2   ans2
3     2   ans3
4     4   ans4
5     6   ans5

У меня есть две таблицы. Один для вопросов и один для ответов. Идентификатор вопроса (qid) используется в качестве внешнего ключа в таблице ответов. Я хочу выбрать вопросы, на которые нет ответа в таблице ответов. В приведенном выше примере мне нужны вопросы 3,5,7. Моя база данных велика и может содержать более 50 000 записей.

Спасибо Арун

Ответы [ 2 ]

3 голосов
/ 28 февраля 2011
select q.* from question as q
left join answer as a
on q.id = a.qid
where a.qid is null

редактировать.Более того, было бы лучше добавить индекс в таблицу ответов

alter table answer add index iq (qid);
1 голос
/ 28 февраля 2011
select * from question where qid not in 
(select qid from answer)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...