• 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

  • 相关阅读:
    我的第一个Python爬虫——谈心得
    python写第一个网页
    科学计算和可视化
    类和正则表达(自动更正,和代数运算)
    图片处理
    jieba
    汉诺塔问题
    Python核心编程(第二版)第十章习题答案
    python官方文档之open()函数的翻译
    python打开文件时提示“File was loaded in the wrong encoding:’UTF-8”根因调查
  • 原文地址:https://www.cnblogs.com/HKUI/p/3585310.html
Copyright © 2020-2023  润新知