我正在研究联接的类型并做练习,我设法毫无问题地进行内部联接,但是我对其他变体(例如左联接)有困难,在我的示例中,我创建了一个小而简单的数据库。
表格中输入的数据:
主题1
IDMATERIA1 | MATERIA1
-----------+-------------
1 | Ingles
2 | Programacion
3 | Matemáticas
4 | Literatura
5 | Algebra
职业1_材料1
ID | IDCARRERA1 | IDMATERIA1
----------+------------+-----------
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
4 | 2 | 1
5 | 2 | 3
6 | 2 | 4
7 | 3 | 1
8 | 3 | 3
9 | 3 | 4
10 | 2 | 5
比赛1
IDCARRERA1 | CARRERA1
-----------+---------------
1 | Sistemas
2 | Administracion
3 | Derecho
学生1
IDALUMNO1 | IDCARRERA1 | ALUMNO1
----------+------------+------------
1 | 1 | Jean Carlos
2 | 2 | Maria
3 | 3 | Carla
最初的练习包括找出学生的职业和科目 = Jean Carlos
这是我用来加入表格并获得我想要的东西的代码,我已经有了学生正在学习的科目:
select a.IDALUMNO1, a.ALUMNO1, m.MATERIA1
from ALUMNO1 a
inner join CARRERA1 c on a.IDCARRERA1 = c.IDCARRERA1
inner join CARRERA1_MATERIA1 cm on cm.IDCARRERA1 = c.IDCARRERA1
inner join MATERIA1 m on m.IDMATERIA1 = cm.IDMATERIA1
where ALUMNO1='Jean Carlos'
现在我需要知道他没有学习哪些科目,根据我的记录,他没有学习文学或代数,据说通过将内部更改为左连接,它会显示与我的学生无关的科目,但它没有工作同样的事情不断弹出。
问题出在哪里,我该如何解决?
回答我自己的问题,我找到的解决方案如下: