2013-05-11 2 views
0

Я столкнулся с проблемой SQL SELECT:SQL вопрос выберите заявление

Существует вопрос, этот вопрос имеет anwser, и этот ответ имеет следующий вопрос, и так далее ... Это мой запрос :

SELECT Q.question, A.answer, A.nextQuestion as 'next question' from answers A join questions Q on A.nextQuestion = V.questionId 
order by Q.question; 

Это выход из вышеупомянутого запроса:

Question 1 | Answer 1 | 2 
Question 1 | Answer 2 | 2 
Question 2 | Answer 1 | 1 
Question 2 | Answer 2 | 1 

Так прямо сейчас «следующий вопрос» это номер ... Но я хотел бы, чтобы решить, что п umber до следующего текста вопроса (Q.question) ... Как я могу это достичь?

Я хочу что-то вроде этого:

Question 1 | Answer 1 | Question 2 
Question 1 | Answer 2 | Question 2 
Question 2 | Answer 1 | Question 1 
Question 2 | Answer 2 | Question 1 

Спасибо заранее !!

Я работаю с MySQL.

Это моя структура таблицы:

стол "Вопросы"

+------------------+ 
| Field   | 
+------------------+ 
| questionId  | 
| question   | 
+------------------+ 

Таблица "Ответы"

+------------------+ 
| Field   | 
+------------------+ 
| answerId   | 
| answer   | 
| nextQuestion  | 
+------------------+ 

ответ

0

Ваша структура данных отсутствует связь с вопросом, чтобы ответить.

Итак, я собираюсь постулировать, что answers имеет поле QuestionId, а также NextQuestionId. Это один из способов получить необходимую вам ссылку. Если у вас нет такой ссылки, вам нужно подумать о своей структуре данных.

С таким полем, второй присоединиться к questions получает то, что вам нужно:

SELECT Q.question, A.answer, nextq.Question as 'next question' 
from questions Q 
    answers A join 
    on A.QuestionId = q.questionId join 
    questions nextq 
    on A.NextQuestionId = nextq.QuestionId 
order by Q.question; 
+0

Спасибо! Это помогло мне! – Lorenzo

Смежные вопросы