1. 多表查询
1.1 内链接
sql多表查询连接的一种;将其中两个表的匹配结果再和第三个表进行匹配,可以节省匹配次数和提高检索速度
基本语法
inner join on
表1 inner join 表2 on 条件 inner join 表3 on 条件 ....
A a inner join B b on a.XXX=b.XXX inner join C c on c.XX=b.XX ,a是表A的别名
查询学生的所有的信息?
mysql> select -> s.id,s.sname,s.age,s.addr,c.c_name,m.marks -> from -> stu_info s inner join marks_info m on s.id=m.s_id inner join class_info c on c.id=m.c_id; +----+-------+-----+---------+---------+-------+ | id | sname | age | addr | c_name | marks | +----+-------+-----+---------+---------+-------+ | 1 | Tom | 20 | beijing | chinese | 65 | | 1 | Tom | 20 | beijing | english | 60 | | 3 | Lily | 18 | beijing | english | 70 | | 4 | Damat | 21 | beijing | english | 90 | | 5 | jim | 29 | nanjing | chinese | 100 | +----+-------+-----+---------+---------+-------+ 5 rows in set (0.00 sec)
查询成绩大于70的学生名字和科目以及分数?
mysql> select -> s.id,s.sname,c.c_name,m.marks -> from -> stu_info s inner join marks_info m on s.id=m.s_id inner join class_info c on c.id=m.c_id -> where -> m.marks > 70; +----+-------+---------+-------+ | id | sname | c_name | marks | +----+-------+---------+-------+ | 4 | Damat | english | 90 | | 5 | jim | chinese | 100 | +----+-------+---------+-------+ 2 rows in set (0.00 sec)
本文出自 “IT5808” 博客,请务必保留此出处http://it5808.blog.51cto.com/10842703/1710021
原文:http://it5808.blog.51cto.com/10842703/1710021