• 子查询和内外链接查询


    导入表

     

     

      

     

    注意外键的对应

    内连接

    #语法1 select * from 表1,表2 where 表1.主键=表2.外键

    #语法2 select * from 表1 inner join 表2 on 表1.主键=表2.外键

     示例:

    这里我们因为是中间用的一个链接表将他们链接在一起,所以这里就让t_usert_user_role内连接显示下

    语法1:

    select * from t_user,t_user_role where t_user.id=t_user_role.user_id

    查询如下图所示 

    语法2 :

    select * from t_user inner join t_user_role on t_user.id=t_user_role.user_id

    查询效果如下图 

     

    外连接 

    --左外链接(以左表为主表,会把左表数据全部查询出来)

    #语法 select * from 表1 left[outer] join 表2 on 表1.主键=表2.外键

    --右外连接(以右表为主表,会把右表数据全部查询出来)

    #语法 select * from 表1 right[outer] join 表2 on 表1.主键=表2.外键

      示例:

    内链接是将两个表信息全部都显示出来,外连接是放左或者放右,一般外连接不会用来查全部,都是用来查单个几个表连一起内容

    左外链接:

    select * from t_user left join t_user_role on t_user.id=t_user_role.user_id 

     查询效果如下图 

    右外链接: 

    select * from t_user right join t_user_role on t_user.id=t_user_role.user_id 

    效果如图所示 

     

    通过左右外连接,大家不难发现就是王五没有另一个表的信息,所以就不会显示出来,左连接是将坐标当主表全部查出来,右表的有的才会显示,右链接就是以右表为主表,会把右表数据全部查询出来

    子查询

    示例:张三拥有哪些角色

    select * from t_role where id in (select role_id from t_user_role where user_id in(select id from t_user where name='张三'))

      

     这段分解就是

    select * from t_role where id in(1,2)

    select role_id from t_user_role where user_id=1


    select id from t_user where name='张三'

     

     可以发现就是将他们一段一段分解之后再进行替换,这边是子查询

     

  • 相关阅读:
    HTML总结
    Opencv学习项目3——pytesseract
    8051开发实例-实现红外寻迹小车
    静态代理和动态代理
    【java学习】变量的分类:成员变量与局部变量(16)
    在线小工具分享(不定时更新,当前数量:2)
    FindMy网络帮助您找到电动车
    吉林教育杂志吉林教育杂志社吉林教育编辑部2022年第28期目录
    LeetCode-775. 全局倒置与局部倒置【最小后缀,归纳】
    如何合理控制亚马逊FBA头程物流费用?
  • 原文地址:https://blog.csdn.net/magic_818/article/details/128063355