MYSQL php有两个表不工作

MYSQL php有两个表不工作,php,mysql,database,if-statement,Php,Mysql,Database,If Statement,请仔细阅读,以便理解问题。这个问题是大学里的一项作业 有两个表,一个是答案表,另一个是学生答案表。我有6个感兴趣的领域,4个在回答表中,2个在学生回答表中。下面是表及其字段和数据。您需要查看mysql中的子查询,您最终的答案可能会是这样的 SELECT * FROM Question q INNER JOIN (SELECT sa.QuestionId, sa.StudentAnswer, at.AnswerContent FROM StudentAnswer sa LEFT JOIN

请仔细阅读,以便理解问题。这个问题是大学里的一项作业


有两个表,一个是答案表,另一个是学生答案表。我有6个感兴趣的领域,4个在回答表中,2个在学生回答表中。下面是表及其字段和数据。

您需要查看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

但是如果没有一个完整的模式,我真的帮不上忙,我还要说小心,我在大学(哈德斯菲尔德)的所有导师都因为在这样的地方搜索作业片段而臭名昭著,所以我希望这对你有所帮助,而不会给你带来麻烦。

我相信左连接是你要找的

SELECT * FROM `StudentAnswer` as sa
  LEFT JOIN (SELECT * FROM `Question` WHERE correct = 1) as q
  ON `sa`.Questionid = q.id

您可以在查询中多次加入
Answer
,只需确保为其指定不同的别名即可。WHERE子句和连接条件的组合现在可以为问题找到正确答案;想一想,在赫德斯菲尔德大学,你还可以理解<代码>学生回答< /代码>和<代码>答案< /代码>。但我现在正在攻读硕士学位。我的主管是琼·鲁,我不知道你是否认识她。我的第二个主管是保罗·贾奇。你在干什么?我很好奇你为什么在
学生回答
回答
之间使用
左连接
。有没有可能学生回答的不是选项之一?对于学生不回答问题的情况,外部连接可能应该在
问题
学生回答
之间。否学生只能从与问题编号匹配的答案中选择,例如,如果问题ID 1有4个答案,学生只能选择这4个答案。你的示例数据看起来有点混乱。这些都应该是您显示的
答案表中问题1的答案吗
StudentAnswer
只有问题1的答案,可能来自不同的学生。第1行显示了学生u0867587对问题1答案的答案。正确答案是利兹,他把答案放在利兹。第2行显示学生u1231231回答了相同的问题,显然正确答案仍然是利兹,但他选择了伯明翰。问题不是查询,查询工作正常。问题是如何使用AnswerContent字段将其输出为单词答案,而不是作为StudentAnswer的id号。如何使每个StudentAnswer id等于其答案内容,并显示查询执行的$row['…'],但它不提供所需的数据。为了在一行中获得
AnswerContent
的两个值,您需要多次加入
Answer