zoukankan      html  css  js  c++  java
  • mysql连接查询经典小例题

    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

  • 相关阅读:
    VSCode
    git CAPTCHA required
    css :active
    节流 防抖
    判断数据类型
    http协议的三次握手和四次挥手
    http协议
    发布网站相关信息
    获取任意两个数之间多个随机数的方法;
    数组中的12个方法;
  • 原文地址:https://www.cnblogs.com/HKUI/p/3585310.html
Copyright © 2011-2022 走看看