mysql高级查询例题_mysql连接查询经典小例题_MySQL

bitsCN.com

mysql连接查询:

Mysql连接查询支持多表连接

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

例题1:

下面有2张表

teams表

1405Kb424DP-1K48.jpg

比赛结果表:result

1405Kb42L560-25106.jpg

问题:

得出一张表:

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

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

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

1405Kb4306250-32324.jpg

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

得到

1405Kb4331250-4Z58.jpg

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;

即可得到

1405Kb4356250-51F3.jpg

结果是出来了,有点繁琐

方法二:多次连接查询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;

即可得到:

1405Kb43RQ0-62560.jpg

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

例题2:

现有下表 subject

1405Kb4410940-L310.jpg

求这样一个表

父栏目名 ,子栏目名称

连接查询

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

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

即可得到

1405Kb4440620-S604.jpg

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

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值