MYSQL php пара таблиц не работает - PullRequest
1 голос
/ 19 октября 2011

Пожалуйста, прочтите это внимательно, чтобы вы поняли вопрос.Этот вопрос предназначен для назначения в университете.

Существует две таблицы: одна - таблица ответов, а другая - таблица StudentAnswer.Есть 6 полей, которые меня интересуют, 4 в таблице ответов и 2 из таблицы StudentAnswer.Ниже приведены таблицы, их поля и данные.

Ответы [ 3 ]

0 голосов
/ 19 октября 2011

Я считаю, что левое соединение - это то, что вы ищете.

SELECT * FROM `StudentAnswer` as sa
  LEFT JOIN (SELECT * FROM `Question` WHERE correct = 1) as q
  ON `sa`.Questionid = q.id
0 голосов
/ 19 октября 2011

Вы можете присоединиться к Answer более одного раза в своем запросе, просто убедитесь, что вы дали ему другой псевдоним.Сочетание предложения WHERE и условия JOIN, которое у вас есть, теперь дает вам правильный ответ на вопрос;подумайте, как еще вы можете связать StudentAnswer и Answer.

0 голосов
/ 19 октября 2011

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

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

Но без полной схемы я не могу помочь, я бы также сказал, что будьте осторожнывсе мои преподаватели в универе (Хаддерсфилд) были известны тем, что искали в таких местах фрагменты своих заданий, поэтому я надеюсь, что это помогло, не доставив вам неприятностей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...