首页 > 数据库技术 > 详细

mysql连接查询经典小例题

时间:2014-03-07 06:23:40      阅读:603      评论:0      收藏:0      [点我收藏+]

mysql连接查询:

Mysql连接查询支持多表连接

对同一张表可以重复连接多次(别名在多次连接同一张表时很重要)

例题1:

下面有2张表

teams表

bubuko.com,布布扣

 

 

比赛结果表:result

bubuko.com,布布扣

 

 

问题:

得出一张表:

主队,客队,比赛成绩,比赛时间

方法一:(子查询和连接查询混合)

  step1:

select result.id, t_name as h_name,match_time,result from teams  join result on teams.t_id=result.h_id

bubuko.com,布布扣

step2:

select result.id ,t_name as g_name from teams  join result on teams.t_id=result.g_id

得到

bubuko.com,布布扣

step3:根据比赛的id 相等连接以上两表即可

bubuko.com,布布扣
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;
bubuko.com,布布扣

即可得到

bubuko.com,布布扣

结果是出来了,有点繁琐

方法二:多次连接查询

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;

即可得到:

bubuko.com,布布扣

Teams表要连接2次所以要有别名

 

例题2:

现有下表 subject

bubuko.com,布布扣

 

求这样一个表

父栏目名 ,子栏目名称

连接查询

自己连接自己更需要别名了

 

select t1.name as p_name,t2.name as son_name from subject as t1 join subject as t2 on t1.id=t2.pid;

 

即可得到

 

 bubuko.com,布布扣

 

为方便练习,或得建表和数据填充sql请点击获取练习sql

mysql连接查询经典小例题,布布扣,bubuko.com

mysql连接查询经典小例题

原文:http://www.cnblogs.com/HKUI/p/3585310.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!