@EvgeniiR
https://github.com/EvgeniiR

Как можно собрать эти запросы в один?

Сайт-викторина.
Таблица questions:
5aae927176643034231371.png
Таблица answers:
5aae922446318343016828.png
Так же из пользовательских ответов создаётся временная таблица temp с полями question_id и answer_id
(ИД вопроса на который ответил пользователь, и, собственно, ИД ответа который пользватель выбрал для него)

Мне нужно составить такой sql запрос который выведет таблицу из 4 полей:
Текст вопроса, на который ответил пользователь - Текст того ответа, которые выбрал полльзователь - Значение, правильны ли ответ(is_correct) - Текст правильного ответа на этот вопрос.

Всё что получилось на данный момент - сделать два запроса, где первый выводит первые 3 необходимых поля, а второй - четвёртое поле:
1) SELECT questions.question_text, answers.answer_text, answers.is_correct
FROM questions INNER JOIN (temp INNER JOIN answers ON temp.answer_id = answers.answer_id) ON questions.question_id = answers.question_id;

2) SELECT temp.question_id, answers.answer_text
FROM temp INNER JOIN answers ON temp.question_id = answers.question_id
WHERE answers.is_correct=1; //выводит ещё question_id, но это будет убрано в финальной версии.

Вот, например вывод из этих двух запросов:
5aae94a3ecf05931548136.png

Буду благодарен, если кто поможет, подскажет как это объеденить в один запрос. Проблема в том, что оба из них обращаются к полю answers.answer_text..
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
@EvgeniiR Автор вопроса
https://github.com/EvgeniiR
Сам SQL не осилил. Запихнул всё в MS Acces и в конструкторе соорудил подходящий запрос. Возможно, переделаю когда изучу SQL на должном уровне. То что получилось из Access:
SELECT questions.question_text, answers.answer_text AS user_answer_text, answers.is_correct AS user_answer_is_correct, answers_1.answer_text AS correct_answer
FROM ((temp INNER JOIN answers ON temp.answer_id = answers.answer_id) INNER JOIN questions ON answers.question_id = questions.question_id) LEFT JOIN answers AS answers_1 ON temp.question_id = answers_1.question_id
WHERE (((answers_1.is_correct)=1));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы