2015-06-22 2 views
0

Запрос должен выполнить следующие действия:MySQL Query возвращающиеся странные значения

Получить вопрос и связанные с ними ответы, основанные на идентификационным номером вопроса. (В этом случае идентификационный номер называется account_id Заказать их так, чтобы каждый вопрос (и это соответствующие ответы) выстроены в порядке

Запрос:..

SELECT * 
    FROM quiz_questions q 
JOIN quiz_answers a 
    ON q.account_id = a.account_id 
WHERE q.account_id = 1840979156127491 
ORDER BY q.question_id 
ASC LIMIT 5 

quiz_questions стол и содержание : enter image description here

quiz_answers стол и содержание: enter image description here

Странные измененные результаты: enter image description here

Как вы можете видеть, где question_id упорядочен, все значения являются 1 однако, другое поле question_id (Эти поля совпадают, если вы посмотрите на предыдущих данных) представляет два, как им следует. Кроме того, несмотря на то, что вопрос (с идентификатором 2) отображается во вторичном поле question_id, текст вопроса остается в вопросе 1: (do you like waffles), связанный с (do you like pancakes).

Что вызывает эти результаты? Вот как выглядят ожидаемые результаты: (Игнорирование повторяющихся полей).

+------------------+-------------+----------------------+-----------+----------------------+---------+ 
| account_id | question_id |  question  | answer_id |  answer  | correct | 
+------------------+-------------+----------------------+-----------+----------------------+---------+ 
| 1840979156127491 |   1 | Do you like waffles |   1 | Yes i like waffles |  1 | 
| 1840979156127491 |   1 | Do you like waffles |   5 | I kinda like waffles |  1 | 
| 1840979156127491 |   1 | Do you like waffles |   6 | Not at all   |  0 | 
| 1840979156127491 |   2 | Do you like pancakes |   7 | Yes     |  1 | 
| 1840979156127491 |   2 | Do you like pancakes |   8 | No   |  0 | 
+------------------+-------------+----------------------+-----------+----------------------+---------+ 
+0

Название вашей таблицы, а также то, как вы поставили вопрос, кажется, вы пытаетесь решить домашнее задание вопрос. Если вы, пожалуйста, сформулируйте это четко и покажите больше того, что вы (вы сами) пробовали до сих пор. – luksch

+0

@luksch - Это не имеет ничего общего с домашней работой, это был просто пример. Я даже не в школе. Ну, я поставил весь этот запрос вместе, прошел через несколько нескольких учебных пособий на YouTube, которые существуют. Проделал несколько поисков по смешавшимся SQL-результатам. Попытавшись изменить сортировку, попытался использовать группу, в которой уничтожена вся структура. Невозможно отсортировать текст вопроса, потому что у нескольких пользователей может быть один и тот же вопрос. – Hobbyist

+0

Хорошо. Спасибо, что поняли это. Я уверен, что вы найдете здесь помощь. – luksch

ответ

2

Вам нужно зарегистрироваться на account_id, а также question_id

SELECT * FROM `quiz_questions` 
INNER JOIN `quiz_answers` 
ON `quiz_questions`.`account_id` = `quiz_answers`.`account_id` 
    AND `quiz_questions`.`question_id` = `quiz_answers`.`question_id` 
WHERE `quiz_questions`.`account_id` = '1840979156127491' 
ORDER BY `quiz_questions`.`question_id` 
ASC LIMIT 5 
+0

О, как мне глупо. Спасибо что подметил это. – Hobbyist

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