2012-05-09 1 views
0

Привет У меня есть SQL подобный код:Почему он отображает один и тот же результат в двух строках?

SELECT vote_id, (SELECT type FROM vote_types WHERE id= 1) AS answer 
FROM poll_answers 
WHERE question_id =1; 

и он показывает мне:

enter image description here

, как сделать этот вопрос, поэтому он может отобразить другой ANSWER2 который vote_id = 2 во втором ряду и не отображать answer1 снова?

спасибо

+3

Узнайте о [SQL присоединяется] (http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql -joins.html). – eggyal

+0

использовать join othervise правильно объяснить ваш вопрос –

+0

@eggyal спасибо за эту ссылку, что немного осведомил об этом. В любом случае у меня все еще возникают проблемы, потому что я задал вопрос: SELECT poll_answers.question_id, v.type AS ответ FROM poll_answers JOIN vote_types v ON poll_answers.vote_id = v.id WHERE question_id = 1; но он отображает ответы на заданный вопрос, в этом случае вопрос с идентификатором 1. Я хочу напечатать все ответы на каждый вопрос в выбранном опросе. Моя таблица опросов - poll_referendum и имеет идентификаторы и имена столбцов. Как мне это сделать? любой свет? – takeit

ответ

0
SELECT poll_questions.id, vote_types.type AS answer 
FROM poll_questions 
    JOIN poll_answers ON poll_questions.id = poll_answers.question_id 
    JOIN vote_types ON poll_answers.vote_id = vote_types.id 
WHERE poll_questions.referendum_id = 1 
+0

Большое вам спасибо за вашу помощь :) – takeit

0

Я не знаю ваших столов. Но я думаю - запрос должен быть

SELECT vote_id, type as answer 
    FROM poll_answers, vote_types 
    WHERE question_id =1 and question_id = id; 
Смежные вопросы