2015-07-08 4 views
1

Этот запросMysql: Join Table Только Первый ряд на левой таблице

SELECT * FROM Question 
INNER JOIN Question_Answer 
    ON Question.question_id = Question_Answer.question_id 
WHERE Question.question_group_id = 518 

Вопрос Таблица имеет следующие столбцы:

question_id|question_name|question_type|question_group_id|question_ask 
1   |100-105  | gr   | 518    | question1 
2   |100-105  | gr   | 518    | question2 
3   |100-105  | gr   | 518    | question3 
4   |100-105  | gr   | 518    | question4 

Question_Answer имеет следующие столбцы:

question_id|question_answer_text|question_answer_id|question_answer_is_correct 
518   |Text1     |1107     |1 
518   |Text2     |1108     |1 
518   |Text3     |1109     |1 
518   |Text4     |1110     |1 

Проблема в том, что он выдает что-то вроде этого:

question_id|question_name|question_type|question_group_id|question_ask|question_id|question_answer_text|question_answer_id|question_answer_is_correct 

1   |100-105  | gr   | 518    | question1 | 518   |Text1     |1107     |1 
1   |100-105  | gr   | 518    | question1 | 518   |Text2     |1108     |1 
1   |100-105  | gr   | 518    | question1 | 518   |Text3     |1109     |1 
1   |100-105  | gr   | 518    | question1 | 518   |Text4     |1110     |1 

То, что я хочу, чтобы достичь это:

1   |100-105  | gr   | 518    | question1 | 518   |Text1     |1107     |1 
2   |100-105  | gr   | 518    | question2 | 518   |Text2     |1108     |1 
3   |100-105  | gr   | 518    | question3 | 518   |Text3     |1109     |1 
4   |100-105  | gr   | 518    | question4 | 518   |Text4     |1110     |1 
+2

Ваши данные испорчены. Quesiton.Question_ID {1,2,3,4} Question_answer Question_ID - это только {518}. 518 никогда не будет равняться {1,2,3,4}. Я удивлен, что вы получаете данные с этим запросом. Возможно, вы хотите присоединиться к 'Question.question_group_Id к Question_Answer.Question_ID', хотя это тоже приведет к слишком большому количеству ассоциаций. так что вам нужно будет что-то в таблице ответов вернуться к question_id в таблице вопросов ... да ... Я думаю, что плохие данные в таблице ответов .... В частности, в вопросе_Id столбец – xQbert

+0

Вау! Спасибо! Я этого не заметил. Это действительно беспорядок в данных. Я не уверен, откуда испугалась ошибка. Дело в том, что question_id в Question_Answer должен был быть 1, 2, 3 и 4 соответственно. Некоторая ошибка в программе изменила его на тот же идентификатор, который является question_group_id из таблицы вопросов. Это то, что я должен проследить. – HDKT

+0

Правило большого пальца: если что-то перестает работать, а код не меняется, сначала просмотрите данные. : P – xQbert

ответ

0

Исправить данные или исправить ваши соединения.

Ваше соединение является: Question.question_id = Question_Answer.question_id

Однако данные: {1,2,3,4} <> {518}

Либо присоединиться неверно, или данные.

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