在springboot项目中常常会遇到前端存在级联框,需要在sql中多表联查出这种链式关系数据
多表查询,也被称为多表连接查询。
为什么会有多表查询这个操作呢?
在实际项目开发过程中,会出现多张表,用于分类存储不同的信息,我们测试需要的数据也会来自不同的表,因此需要使用多表查询。
以下用两张为例,Teacher表和Student表,需要查出校长老师学生的上下级对应关系:
Teacher表:
Student表:
班主任1对应校长1,下面对应着学生张三、王五
因此在Student表中查询,LEFT JOIN teacher表
SELECT
t.`Name` AS "第二级",
s.Name AS "第三级"
FROM
student s
LEFT JOIN `teacher` t
ON s.`PreId` = t.`Id`
查询得到结果:
查询出了班主任和学生的对应关系,还需再LEFT JOIN 一次Teacher表得到班主任和校长的对应关系
SELECT
t1.`Name` AS "第一级",
t.`Name` AS "第二级",
s.Name AS "第三级"
FROM student s
LEFT JOIN `teacher` t
ON s.`PreId` = t.`Id`
LEFT JOIN `teacher` t1
ON t.`preId` = t1.`Id`
查询得到结果:
至此就查询完成,如果需考虑字段是否启用等,需根据需求添加查询限制条件