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
  • 相关阅读:
    JS——变量和函数的预解析、匿名函数、函数传参、return
    JS——函数
    JS——操作元素属性
    JS——变量声明、变量类型、命名规范
    JS——三种嵌入页面的方式
    CSS——弹性盒模型
    CSS——相对定位、绝对定位、固定定位
    CSS3——PC以及移动端页面适配方法(响应布局)
    [20180528]校内模拟赛
    Leetcode Majority Element系列 摩尔投票法
  • 原文地址:https://www.cnblogs.com/itZhy/p/7454718.html
Copyright © 2011-2022 走看看