抱歉,如果这篇文章的标题有点混乱。我的问题很简单,我知道解决方案与连接有关,但我不能确切地找出相关的帖子。
我在MySQL中整理了一个类时间表,这些类有先决条件。为此,我有一个表,其中包含所有可用的类(ClassName),当然还有一个主ID(classid)。然后我有另一个课程表提供这学期,建立使用信息从“班可用”表。此表以一个唯一的id(classterminal_id)、Class_id和一个Prerec_id开始,作为该类的先决条件。Prerec_ID实际上是另一个类的类ID。
这意味着在实际的日程安排中,我需要使用ClassName列来匹配Class_ID和Prerec_ID
表1:所有类
Col1:类别ID
Col2:类名
表2:学期班
Col1:班级学期ID
Col2:类ID
Col3:预录ID
如何构造一个查询,该查询将同时输出类名和Prerec类名,并显示它们关联的类名?
提前谢谢你们!
-断路器
最佳答案
我相信这样会更有效率
select SemesterClasses.Class_ID, AllClasses.ClassName, PreRequisite.ClassName as PreRequisiteName
from SemesterClasses
left join AllClasses on AllClasses.Class_ID = SemesterClasses.Class_ID
left join AllClasses as PreRequisite on PreRequisite.Class_ID = SemesterClasses.Prerec_ID
应返回所有具有类id、名称和必备名称的SeMasterClasses行。
你还可以在今年的semesterclasses中添加一些列,比如在where上应用过滤器。
希望有帮助