• mysql 数据操作 多表查询 多表连接查询 笛卡尔积


    1 交叉连接:不适用任何匹配条件。生成笛卡尔积

    所有员工都和四个部门 做了对应关系

    mysql> select * from employee,department;
    +----+------------+--------+------+--------+------+--------------+
    | id | name       | sex    | age  | dep_id | id   | name         |
    +----+------------+--------+------+--------+------+--------------+
    |  1 | mike       | male   |   18 |    200 |  200 | 技术         |
    |  1 | mike       | male   |   18 |    200 |  201 | 人力资源     |
    |  1 | mike       | male   |   18 |    200 |  202 | 销售         |
    |  1 | mike       | male   |   18 |    200 |  203 | 运营         |
    |  2 | alex       | female |   48 |    201 |  200 | 技术         |
    |  2 | alex       | female |   48 |    201 |  201 | 人力资源     |
    |  2 | alex       | female |   48 |    201 |  202 | 销售         |
    |  2 | alex       | female |   48 |    201 |  203 | 运营         |
    |  3 | jack       | male   |   38 |    201 |  200 | 技术         |
    |  3 | jack       | male   |   38 |    201 |  201 | 人力资源     |
    |  3 | jack       | male   |   38 |    201 |  202 | 销售         |
    |  3 | jack       | male   |   38 |    201 |  203 | 运营         |
    |  4 | yuanhao    | female |   28 |    202 |  200 | 技术         |
    |  4 | yuanhao    | female |   28 |    202 |  201 | 人力资源     |
    |  4 | yuanhao    | female |   28 |    202 |  202 | 销售         |
    |  4 | yuanhao    | female |   28 |    202 |  203 | 运营         |
    |  5 | liwenzhou  | male   |   18 |    200 |  200 | 技术         |
    |  5 | liwenzhou  | male   |   18 |    200 |  201 | 人力资源     |
    |  5 | liwenzhou  | male   |   18 |    200 |  202 | 销售         |
    |  5 | liwenzhou  | male   |   18 |    200 |  203 | 运营         |
    |  6 | jingliyang | female |   18 |    204 |  200 | 技术         |
    |  6 | jingliyang | female |   18 |    204 |  201 | 人力资源     |
    |  6 | jingliyang | female |   18 |    204 |  202 | 销售         |
    |  6 | jingliyang | female |   18 |    204 |  203 | 运营         |
    +----+------------+--------+------+--------+------+--------------+
    24 rows in set (0.00 sec)

     

     有两张表 一张左表 一张右表 左表所有记录 都会跟右表对应一遍

    优点: 简单粗暴 两张表对上

    缺点:有些记录没有意义 没用

    笛卡尔积基础上筛选有关系的 加上限制关系

    员工表的employee.dep_id == 部门表department.id 对上 才是有关联的记录

    加上where 过滤掉没有意义的记录 取出那些有关联关系的记录

    库名.表名.字段名

    mysql> select * from employee,department where  employee.dep_id = department.id;
    +----+-----------+--------+------+--------+------+--------------+
    | id | name      | sex    | age  | dep_id | id   | name         |
    +----+-----------+--------+------+--------+------+--------------+
    |  1 | mike      | male   |   18 |    200 |  200 | 技术         |
    |  2 | alex      | female |   48 |    201 |  201 | 人力资源     |
    |  3 | jack      | male   |   38 |    201 |  201 | 人力资源     |
    |  4 | yuanhao   | female |   28 |    202 |  202 | 销售         |
    |  5 | liwenzhou | male   |   18 |    200 |  200 | 技术         |
    +----+-----------+--------+------+--------+------+--------------+
    5 rows in set (0.00 sec)

    笛卡尔积 了解下就可以了 ,不要用where做连表操作,where只是单纯来过滤 ,mysql有专门提供连表查询语法

  • 相关阅读:
    大三寒假学习进度笔记(二十二)—— 降维与SparkSQL
    大三寒假学习进度笔记(二十一)—— 聚类与SparkSQL入门
    大三寒假学习进度笔记(二十)—— 模型提升和Spark中WordCount的11种实现方法
    大三寒假学习进度笔记(十九)(补)——分类
    四月读书报告《梦断代码》二
    基于javaEE的简单教务系统实现(五)
    基于javaEE的简单教务系统实现(四)
    质量属性论文
    四月读书报告《梦断代码》一
    基于javaEE的简单教务系统实现(三)
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/9892876.html
Copyright © 2020-2023  润新知