mysql - 左连接不起作用

标签 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   |
--------------------------------

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

最佳答案

这是因为您使用了 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

关于mysql - 左连接不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26751495/

相关文章:

java - 如何读取两个文本并插入数据库中的单个字段

MySql 5.7 安装程序无法检测到 VS 2013 可再发行组件

Java Web 应用程序查询不起作用

mysql - 从一个表中选择包含另一个表中一长串单词中的任何单词的行

sql - MySQL 数据库是否有等效的 Redgate SQL 比较?

PHP 计算一个用户与其他用户的距离(一一计算)

mysql - 使用来自不同表的数据计算 SQL SELECT 语句中的附加列

php - 简单的 PHP Person 类建模

database - 将 jpeg 图像保存和加载到数据库不工作 DELPHI

MySQL方便统计