您的位置:首页 > 数据库

sql-多表联合查询

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

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

例子:

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

专业,学院,年级。

怎么写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>


这样一条简单左连接就完成了,减少了一条一条查询所消耗的时间,提高了效率。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: