2016-02-11 119 views
-1

我试图连接两个表名学生和主题,我需要使用两个表一个搜索查询,这是我的搜索查询:MySQL连接返回NULL?

SELECT 
    subjects.subject_name, students.first_name, 
    students.last_name, subjects.examboard, students.student_id 
FROM subjects 
    RIGHT JOIN students 
    ON Subjects.subject_id=students.student_id 
WHERE examboard='OCR' 
ORDER BY last_name ASC 

我的结果: 的ExamBoard(OCR),显示了... 其余的部分??对他们中的每一个都是空的。

使用内部连接或右连接,会导致空集。

任何帮助?由于

+1

你为什么要加入Subjects.subject_id = students.student_id?他们几乎没有办法匹配。 – durbnpoisn

+1

'math = john doe',基本上? –

+0

请分享有关桌子的信息。 –

回答

0

我猜你的错误就是你要加入:

Subjects.subject_id=students.student_id 

它可能应该是:

Subjects.student_id=students.student_id 

而且,当这些是什么?

WHERE examboard='OCR' 
ORDER BY last_name ASC 

也就是说,它们在哪个表中?它没有被指定,它应该是。

+0

我的朋友能够成功地做到这一点,但如果我尝试比它失败。 – Rekan

+0

我把表名添加到了where和order by,仍然是相同的结果。我真的不明白这一点。我的朋友有完全相同的表格结构,但对他而言,他的结果并不是“NULL” – Rekan

+0

您的麻烦(看着您的表格)是您没有student_id加入。你需要补充一点。要么是这样,要么你需要将subject_id添加到学生表(这可能更好)。这样,每个学生都可以参考他们拥有的任何主题。 – durbnpoisn