zoukankan      html  css  js  c++  java
  • Mysql常用sql语句(14)- 多表查询

    测试必备的Mysql常用sql语句系列

    https://www.cnblogs.com/poloyy/category/1683347.html

    前言

    • 实际工作中,每次查询基本都是需要结合多个表去查询数据,所以Mysql的多表查询我们必须掌握
    • 多表查询可以是两张表,也可以是很多张表,取决于需要查询的数据要关联多少张表

    有哪些多表查询

    • cross join:交叉连接
    • inner join:内连接
    • left join:左外连接
    • right join:右外连接
    • union、union all:全连接

    多表查询的区别

    查询类型 简述 图表
    inner join

    获取两个表中字段相互匹配关系的记录

    即两表记录都不为null才会返回

    left join

    获取左表所有记录

    右表为空的字段补null

    right join

    获取右表所有记录

    左表为空的字段补null

    union 获取左右表所有记录
    cross join 两张表的笛卡尔积  

     

    执行SQL

    后面详细讲每种多表查询的时候,会用到这些数据表和数据;先跑一跑创建下哦!

    DROP TABLE IF EXISTS `emp`;
    CREATE TABLE `emp`  (
      `id` int(11) NOT NULL COMMENT '员工编号',
      `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '员工姓名',
      `dept_id` int(11) NULL DEFAULT NULL COMMENT '部门编号',
      `leader` int(11) NULL DEFAULT NULL COMMENT '直属领导id',
      `is_enable` int(11) NULL DEFAULT NULL COMMENT '是否在职 1在职 0离职',
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
    
    
    INSERT INTO `emp` VALUES (1, '张三丰', 1, 0, 1);
    INSERT INTO `emp` VALUES (2, '张无忌', 1, 1, 1);
    INSERT INTO `emp` VALUES (3, '小龙女', 1, 1, 1);
    INSERT INTO `emp` VALUES (4, '小白菜', 1, 3, 1);
    INSERT INTO `emp` VALUES (5, '韦小宝', 2, 0, 1);
    INSERT INTO `emp` VALUES (6, '令狐冲', 2, 0, 1);
    INSERT INTO `emp` VALUES (7, '东方不败', 0, 8, 1);
    INSERT INTO `emp` VALUES (8, '任我行', 3, 0, 1);
    INSERT INTO `emp` VALUES (9, '李寻欢', 0, 8, 1);
    
    
    DROP TABLE IF EXISTS `dept`;
    CREATE TABLE `dept`  (
      `id` int(11) NOT NULL COMMENT '部门id',
      `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '部门名称',
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
    
    INSERT INTO `dept` VALUES (1, '销售部');
    INSERT INTO `dept` VALUES (2, '信息技术部');
    INSERT INTO `dept` VALUES (3, '财务部');
    INSERT INTO `dept` VALUES (4, '有关部门');
  • 相关阅读:
    Android碰撞检测——Region碰撞检查
    游戏音乐MediaPlayer和SoundPool常用的一些方法
    游戏框架SurfaceView的简单运用
    Android碰撞检测——矩形检查
    View框架下实现角色的上下左右移动
    数据库导出到Excel前后端代码
    jQuery打印插件PrintArea实现
    showModalDialog 传值及刷新
    文件夹中文件夹(文件)按时间排序,读取最新的文件夹(文件)
    .NET分布式开发报错:“与基础事务管理器的通信失败”的解决方法
  • 原文地址:https://www.cnblogs.com/poloyy/p/12875606.html
Copyright © 2011-2022 走看看