«

经典mysql连接查询例题

时间:2024-3-1 23:04     作者:韩俊     分类: Mysql


MySQL连接查询相信大家都有所了解,连接查询是在数据库查询操作的时候经常用到的,下面就为您介绍MySQL连接查询

mysql连接查询:支持多表连接

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

例题1:

下面有2张表

teams表

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line 161
img/2015/08/19/142215_55d42097c0f53.png" alt="查看图片" />

比赛结果表:result

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line 161
img/2015/08/19/142216_55d420986dc36.png" alt="查看图片" />

问题:

得出一张表:主队,客队,比赛成绩,比赛时间

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

step1:

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

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line 161
img/2015/08/19/142217_55d4209931057.png" alt="查看图片" />

step2:

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

得到

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line 161
img/2015/08/19/142217_55d42099c2062.png" alt="查看图片" />

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;

即可得到

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line 161
img/2015/08/19/142218_55d4209a906c7.png" alt="查看图片" />

结果是出来了,有点繁琐

方法二:多次连接查询

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;

即可得到:

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line 161
img/2015/08/19/142219_55d4209b5fad6.png" alt="查看图片" />

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

例题2:

现有下表 subject

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line 161
img/2015/08/19/142220_55d4209c2ec67.png" alt="查看图片" />

求这样一个表

父栏目名 ,子栏目名称

连接查询

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

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

即可得到

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line 161
img/2015/08/19/142220_55d4209cb53f3.png" alt="查看图片" />

以上就是本文的全部内容,希望大家能够喜欢。

标签: mysql

热门推荐