sql-多表联合查询

时间:2022-04-18 00:22:17

      在做项目的时候经常会遇到对数据库进行查询,如果业务比骄傲简单,那查询的时候相对来说也比较简单,但

是如果业务复杂,需要关联多张表,将其查询的结果返回,那么该用什么方法呢?


例子:

      有四张表,学生信息表,专业表,学院表,年级表,所要查询出来的内容:根据学号查询学生的姓名,性别,

专业,学院,年级。

      怎么写sql语句去实现这个业务呢?这里面根据学生的学号去查询学生表中的姓名、性别、专业id;根据所查

询出来的专业id,到专业表中查询专业的名称,学院id;根据学院id在学院表中查询学院名称,在年级表中根据学生

的班级号查询年级信息:       

      这里利用sql语句的外连接进行查询。


LEFT JOIN 关键字语法

<pre name="code" class="sql">SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name 
//在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。




具体的代码实现:

<span style="font-family:KaiTi_GB2312;font-size:18px;">// 根据学号查询学生姓名,性别,专业,学院,年级
sql = "select ts.name,ts.sex,tp.professionalName,ti.InstitutionName,tg.gradeName from (("
+ dataBaseName
+ ".tb_student ts left JOIN "
+ dataBaseName
+ ".tb_professional tp on ts.professionalId = tp.id) left JOIN "
+ dataBaseName
+ ".tb_institution ti on tp.institutionId = ti.id) LEFT JOIN "
+ dataBaseName
+ ".tb_grade tg on ts.classesId = tg.classesId where code='"
+ Code + "'";</span>

    这样一条简单左连接就完成了,减少了一条一条查询所消耗的时间,提高了效率。