질문을 이해할 수 있도록이 항목을주의 깊게 읽으십시오. 이 질문은 대학에서의 과제입니다.MYSQL PHP 테이블이 작동하지 않습니다.
하나는 응답 테이블이고 다른 하나는 StudentAnswer 테이블입니다. 관심 분야가 6 개 있는데, 응답 테이블에 4 개, StudentAnswer 테이블에 2 개 있습니다. 아래 표와 해당 필드 및 데이터가 있습니다.
질문을 이해할 수 있도록이 항목을주의 깊게 읽으십시오. 이 질문은 대학에서의 과제입니다.MYSQL PHP 테이블이 작동하지 않습니다.
하나는 응답 테이블이고 다른 하나는 StudentAnswer 테이블입니다. 관심 분야가 6 개 있는데, 응답 테이블에 4 개, StudentAnswer 테이블에 2 개 있습니다. 아래 표와 해당 필드 및 데이터가 있습니다.
당신은 내가 모든주의 말을,
SELECT * FROM Question q
INNER JOIN (SELECT sa.QuestionId, sa.StudentAnswer, at.AnswerContent FROM StudentAnswer sa LEFT JOIN Answer at ON (sa.StudentAnswer = at.AnswerId AND sa.QuestionId = at.QuestionId) sq ON q.QuestionId = sq.QuestionId
JOIN Answer a ON sq.QuestionId = a.QuestionId
WHERE
(CorrectAnswer = '1')
ORDER BY $orderfield ASC
그러나
전체 스키마없이 정말 도울 수 없어요 ... 당신의 궁극적 인 대답은 아마 다음과 같이 somethink 모양 MySQL은 서브 쿼리 볼 필요가 유니 (허 더스 필드)의 나의 교사들은 과제물 발췌 문장에서 이와 같은 장소를 검색하는 것으로 유명 했으므로 문제가 발생하지 않고 도움이 되었기를 바랍니다.허 더스 필드 대학에서. 하지만 나는 지금 석사 학위를 연구하고 있습니다. 제 감독자 조안 루는 당신이 그녀를 안다면 모릅니다. 내 두 번째 감독은 Paul Judge입니다. 뭐하고 있니? – BruceyBandit
왜 나는 StudentAnswer와 Answer 사이에 LEFT JOIN으로 갔는지 궁금합니다. 학생이 옵션 중 하나가 아닌 무언가로 대답했을 가능성이 있습니까? 아마도 외부 조인은 학생이 질문에 답하지 않은 경우에 'Question'과 'StudentAnswer'사이에 있어야합니다. – Simon
학생은 질문 번호와 일치하는 답 중에서 만 선택할 수 없습니다. questionid 1에 4 개의 답이있는 경우 학생은 4 개의 답을 선택할 수 있습니다. – BruceyBandit
나는 당신이 찾고있는 것이 무엇인지 믿습니다.
SELECT * FROM `StudentAnswer` as sa
LEFT JOIN (SELECT * FROM `Question` WHERE correct = 1) as q
ON `sa`.Questionid = q.id
당신은 당신이 그것을 다른 별명을주고 있는지 확인 쿼리에 두 번 이상 Answer
이상으로 가입 할 수 있습니다. WHERE 절과 JOIN 조건을 조합하면 질문에 대한 정답을 얻을 수 있습니다. StudentAnswer
과 Answer
을 어떻게 연관시킬 수 있는지 생각해보십시오.
문제가 쿼리가 아니므로 쿼리가 올바르게 작동합니다. 문제는 StudentAnswer의 ID 번호가 아닌 AnswerContent 필드를 사용하여 단어 대답으로 출력하는 방법입니다. 각 StudentAnswer ID를 응답 내용과 동일하게 만들고 $ row [ '...']를 표시하려면 – BruceyBandit
쿼리가 실행되지만 필요한 데이터가 제공되지 않습니다. 'AnswerContent'에 대한 두 개의 값을 한 행에 얻으려면'Answer'에 두 번 이상 참여해야합니다. – Simon
예제 데이터가 약간 혼란스럽게 보입니다. 당신이 보여주는'Answer' 테이블에서 질문 1에 대한 답들이 모두 있어야합니까? 'StudentAnswer'는 아마도 질문 1에 대한 답을 가지고있을 것입니다. 아마 다른 학생들로부터 왔을 것입니다. – Simon
행 1은 u0867587 학생이 질문 1에 대한 답을 위해 무엇을 넣었는지를 보여줍니다. 정답은 leeds이며 그는 답안에 대해 답합니다. 2 행은 학생 u1231231이 똑같은 질문에 답했다는 것을 보여줍니다. 물론 정답은 여전히 리듬이지만 버밍엄을 선택했습니다. – BruceyBandit