左连接不起作用

时间:2014-11-05 07:07:44

标签: mysql sql database join

我在连接两个表时遇到问题。

我有两个带字段的表[如下所示]:

Table 1 : prospectus - 
          idprospectus(int(2)), subjectcode(varchar(40)), units(int(2))

Table 2 : Student - 
          studentid(int(10)), subjectcode(varchar(40)), grade(varchar(10)), remarks(varchar(30))

我想要的是加入这两个表,即使学生表中的主题代码的值不存在(招股说明书表包含所有主题或主题代码,而学生表只有学生注册后才有主题代码)该科目还包含学生注册的科目成绩。)

我已经尝试过执行以下查询:

select p.subjectcode, s.grade, s.note 
from prospectus p 
left join student s on s.subjectcode=p.subjectcode 
where s.studentid='2011-10258' 
order by p.idprospectus

但上面的查询只会给我这个:

--------------------------------
| subjectcode | grade |  Note  |
--------------------------------
| Eng         | 89    | Passed |
| Math        | 93    | Passed |
| Sci         | 90    | Passed |
--------------------------------

我已经尝试过使用右连接,内连接,外连接,但它都会给我相同的输出,如上所示。

您可以参考下面的首选输出:

--------------------------------
| subjectcode | grade |  Note  |
--------------------------------
| Eng         | 89    | Passed |
| Math        | 93    | Passed |
| Sci         | 90    | Passed |
| Soc         | NULL  | NULL   |
| Lit         | NULL  | NULL   |
--------------------------------

有人可以帮我摆脱这个吗?

1 个答案:

答案 0 :(得分:3)

这是因为您使用的是WHERE子句,请尝试使用AND

select p.subjectcode, s.grade, s.note 
from prospectus p 
left join student s on s.subjectcode=p.subjectcode 
AND s.studentid='2011-10258' 
order by p.idprospectus