Home >Database >Mysql Tutorial >mysql连接查询经典小例题_MySQL

mysql连接查询经典小例题_MySQL

WBOY
WBOYOriginal
2016-06-01 13:18:291397browse

bitsCN.com

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;

 

即可得到

 

 

 

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

bitsCN.com
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn