sql多表查询(sql语句from两个表)
一、SQL多表连接的查询
1、查询所有选课的学生的学号,姓名,课程名及成绩。查询语句:
2、查询结果:
3、查询所有比赵雪年龄大的学生的姓名和年龄查询语句:
4、查询结果:
5、查询讲授C1(高等数学)课程的教师名查询语句:
6、查询结果:
7、查询与高等数学在同一教室上课的其他课程号查询语句:
8、查询结果:
9、查询计算机系学生选修的课程名查询语句:
10、查询结果:
11、查询张光老师讲授的课程名查询语句:
12、查询结果:
二、SQL多表查询统计怎么弄
既然两个表的结构一模一样,如果想统计人名出现的总数,可以将两个表先用unionall合并到一起,然后再对其进行统计。
例如,有下面两个表:成绩表A、成绩表B,这两个表的结构是完全一样的,分别都有20条记录,但两个表有部分记录是重复的:
如果将两个表合并到一起,可以使用unionall。注意,这里必须加上all,否则,那些重复的记录就会被排除掉了,从而导致出现的总数不准确。例如,下面的语句没有加all,输出的姓名记录数只有25个,有另外15个重复的被排除掉了:
所以,一定要加上all。这样得到两个表的合集后,再用括号将其包起来,把它作为一个表来处理,再次统计即可。sql语句如下:
select姓名,count(*)as出现次数from(select姓名from成绩表Aunionallselect姓名from成绩表B)groupby姓名
统计结果如下图:
我是人民邮电出版社签约作者,著有多本与B/S、C/S开发方面的专业书籍,欢迎关注并一起交流提高,谢谢!
三、SQL多表联查
在SQL中,如果要从多个表中检索数据并进行联合显示,可以使用多表联查。多表联查的语法如下:
SELECT列1,列2,...FROM表1JOIN表2ON表1.列名=表2.列名WHERE条件;
其中,JOIN是连接操作符,可以连接多个表。ON子句用于指定连接条件,连接条件可以是相等运算符、大于运算符等。如果要连接多个表,可以使用多个JOIN语句进行连接。
多表联查的步骤如下:
确定要查询的列和要查询的表。
使用JOIN语句将需要连接的表连接起来,指定连接条件。
使用WHERE子句指定查询条件。
例如,假设有两个表,一个是orders表,包含订单信息,另一个是customers表,包含客户信息,现在要查询客户名字和对应的订单号,可以使用以下SQL语句:
SELECTcustomers.name,orders.order_no
FROMcustomers
JOINordersONcustomers.id=orders.customer_id;
这个语句会连接customers表和orders表,根据两个表的customer_id和id列进行连接,并返回匹配的客户名字和订单号。