经典mysql连接查询例题_MySQL
mysql连接查询:支持多表连接
对同一张表可以重复连接多次(别名在多次连接同一张表时很重要)
例题1:
下面有2张表
teams表
比赛结果表:result
问题:
得出一张表:主队,客队,比赛成绩,比赛时间
方法一:子查询和连接查询混合
step1:
代码如下:
select result.id, t_name as h_name,match_time,result from teams join result on teams.t_id=result.h_id
step2:
代码如下:
select result.id ,t_name as g_name from teams join result on teams.t_id=result.g_id
得到
step3:根据比赛的id 相等连接以上两表即可
代码如下:
select t1.id,h_name,g_name,result,match_time from
(select result.id, t_name as h_name,match_time,result from teams join result on teams.t_id=result.h_id) as t1
join
(select result.id ,t_name as g_name from teams join result on teams.t_id=result.g_id) as t2
on t1.id=t2.id;
即可得到
结果是出来了,有点繁琐
方法二:多次连接查询
代码如下:
select result.id,t1.t_name as h_name ,t2.t_name as g_name ,result,match_time from result
join
teams as t1 on result.h_id=t1.t_id
join
teams as t2 on t2.t_id=result.g_id;
即可得到:
Teams表要连接2次所以要有别名
例题2:
现有下表 subject
求这样一个表
父栏目名 ,子栏目名称
连接查询
自己连接自己更需要别名了
代码如下:
select t1.name as p_name,t2.name as son_name from subject as t1 join subject as t2 on t1.id=t2.pid;
即可得到
以上就是本文的全部内容,希望大家能够喜欢。
上一篇: 30个电脑日常维护小技巧
推荐阅读
-
django连接mysql配置方法总结(推荐)
-
Linux连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决
-
Oracle与MySQL的分页查询sql语句格式实例讲解
-
一键搞定python连接mysql驱动有关问题(windows版本)
-
JSP使用JDBC连接MYSQL数据库的方法
-
在ASP中连接MySQL数据库,最好的通过ODBC方法
-
如何LNMP一键包安装后解决MySQL无法远程连接问题?
-
.net(C#数据库访问) Mysql,Sql server,Sqlite,Access四种数据库的连接方式
-
MySQL优化之连接优化
-
使用数据库客户端工具Oracle SQL Developer加载第三方驱动连接mysql的方法