Heim > Datenbank > MySQL-Tutorial > mysql连接查询经典小例题_MySQL

mysql连接查询经典小例题_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-01 13:18:29
Original
1431 Leute haben es durchsucht

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
Nach dem Login kopieren

step2:

select result.id ,t_name as g_name from teams  join result on teams.t_id=result.g_id
Nach dem Login kopieren

得到

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;
Nach dem Login kopieren

即可得到

结果是出来了,有点繁琐

方法二:多次连接查询

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;
Nach dem Login kopieren

即可得到:

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;
Nach dem Login kopieren

 

即可得到

 

 

 

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

bitsCN.com
Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage