【发布时间】:2023-03-10 16:10:01
【问题描述】:
我有四张桌子
student
-------
id, int
firstName, varchar
lastName, varchar
course
------
id, int
name, varchar
semester
--------
id, int
name, varchar
mark
----
studentId, int
courseId, int
semesterId, int
mark, int
我想做一个 sql 查询,为mark 表中的每一行检索firstName、lastName、courseName、semesterName 和mark。
我尝试使用 INNER JOIN 进行此操作,但我无法为多个表创建 INNER JOIN。
我终于找到了那个代码
select student.firstName, student.lastName, course.name, semester.name, mark.mark
from mark
INNER JOIN student ON student.id = mark.studentId
INNER JOIN course ON course.id = mark.courseId
INNER JOIN semester ON semester.id = mark.semesterId
【问题讨论】:
-
应该可以工作..你使用什么sql? mysql/ms-sql-服务器?你确定表中的数据具有正确的 id 吗?
-
给我看看你的表结构...
-
你说的you can't是什么意思?
-
这很好用,有什么问题?
-
我认为您的查询没有问题。请注意,对于内部联接,如果联接中没有对应的行,则该记录将被丢弃。换言之,如果某个学生、课程和/或学期的分数缺失,则该分数将不会被退回。