zoukankan      html  css  js  c++  java
  • SQL多表联查总结

    交叉连接:(不常用)
    返回两个表的笛卡尔乘积(也即全组合排列)中符合查询条件的数据行。

    内连接
    返回连接表中符合连接条件和查询条件的数据行。

    左外连接
    返回符合连接条件和查询条件(即:内连接)的数据行,且还返回左表中不符合连接条件但符合查询条件的数据行。

    右外连接
    返回符合连接条件和查询条件(即:内连接)的数据行,且还返回右表中不符合连接条件但符合查询条件的数据行。

    全外连接(不常用,MySQL不支持)
    返回符合连接条件和查询条件(即:内连接)的数据行,且还返回左表中不符合连接条件但符合查询条件的数据行以及右表中不符合连接条件但符合查询条件的数据行。

    例子

    表结构和数据:
    users表

    id name
    1 李四
    2 王五
    4 张三

    logs表

    id user_id log
    1 1 操作了A
    2 1 操作了B
    3 2 操作了C
    4 2 操作了D
    5 3 操作了E

    交叉连接:
    语句

    SELECT
    a.`id`,
    a.`name`,
    b.`log`
    FROM
    `users` AS a,
    `logs` AS b

    结果

    id name log
    1 李四 操作了A
    2 王五 操作了A
    4 张三 操作了A
    1 李四 操作了B
    2 王五 操作了B
    4 张三 操作了B
    1 李四 操作了C
    2 王五 操作了C
    4 张三 操作了C
    1 李四 操作了D
    2 王五 操作了D
    4 张三 操作了D
    1 李四 操作了E
    2 王五 操作了E
    4 张三 操作了E

    内连接:
    语句

    SELECT
    a.`id`,
    a.`name`,
    b.`log`
    FROM
    `users` AS a
    INNER JOIN `logs` AS b ON a.`id` = b.`user_id`

    结果

    id name log
    1 李四 操作了A
    1 李四 操作了B
    2 王五 操作了C
    2 王五 操作了D

    左外连接:
    语句

    SELECT
    a.`id`,
    a.`name`,
    b.`log`
    FROM
    `users` AS a
    LEFT JOIN `logs` AS b ON a.`id` = b.`user_id`

    结果

    id name log
    1 李四 操作了A
    1 李四 操作了B
    2 王五 操作了C
    2 王五 操作了D
    4 张三 NULL

    右外连接:
    语句

    SELECT
    a.`id`,
    a.`name`,
    b.`log`
    FROM
    `users` AS a
    RIGHT JOIN `logs` AS b ON a.`id` = b.`user_id`

    结果

    id name log
    1 李四 操作了A
    1 李四 操作了B
    2 王五 操作了C
    2 王五 操作了D
    NULL NULL 操作了E
  • 相关阅读:
    SpringBoot中获取上下文
    @Import
    SpringBoot集成Swagger-Bootstrap-UI(已改名为Knife4j)
    SpringFox 3.0.0(包含springfox-swagger2-3.0.0)——无法访问/swagger-ui.html解决方案
    容器编排技术 docker compose 20210816
    SC Nacos 服务注册和发现202107
    GitHub Desktop报错 Authentication failed. Some common reasons include
    arcgis esriGeometryType
    小程序H5接口测试整理(JMeter)
    python+检查图像文件是否损坏,是,删除
  • 原文地址:https://www.cnblogs.com/itZhy/p/7454718.html
Copyright © 2011-2022 走看看