• left join ,right join ,inner join ,cross join 区别


    left join ,right join ,inner join ,cross join 区别(参考:http://zhidao.baidu.com/link?url=gpOl9HXZR0OrQuys04oH3f8guGQFZBUNs7kd4JWbUcDVbflB4qe1LJnLbfWXa7-CjfDWhzgK5T26-FZpZwVqLq)

    举个简单的例子吧,从结果来理解比较具体些。
    a表
    name sex
    张三 男
    李四 女

    b表
    name age
    李四 30
    王五 23

    1全外连接
    select a.name,a.sex,b.name,b.age
    from a full outer join b on a.name=b.name
    结果如下,
    name sex name age
    张三 男 NULL NULL
    李四 女 李四 30
    NULL NULL 王五 23
    关联字段name,左表有而右表没有的,如张三,b.name,b.age都为NULL,加上左右两边都有的就是左连接的结果;而右表有而左表表没有的,如王五,a.name,a.sex都为NULL,加上左右两边都有的就是右连接的结果;左右两边都有的如,李四,这就是内连接。相见如下
    2左
    select a.name,a.sex,b.name,b.age
    from a left outer join b on a.name=b.name
    结果如下
    name sex name age
    张三 男 NULL NULL
    李四 女 李四 30
    2右
    select a.name,a.sex,b.name,b.age
    from a right outer join b on a.name=b.name
    结果如下
    name sex name age
    李四 女 李四 30
    NULL NULL 王五 23
    3内联
    select a.name,a.sex,b.name,b.age
    from a inner join b on a.name=b.name
    结果如下
    name sex name age
    李四 女 李四 30
    4交叉(用mysql没测试出来,和inner join结果 一样,有看到的请指教)
    select a.name,a.sex,b.name,b.age
    from a cross join b on a.name=b.name
    结果如下
    name sex name age
    张三 男 李四 30
    李四 女 王五 23
    张三 男 王五 23
    李四 女 李四 30

    (http://blog.csdn.net/zhuxinhua/article/details/5815910)
  • 相关阅读:
    Android和PHP开发最佳实践
    python3+pyqt5 +eric5安装配置
    用Python为iOS和Android写跨平台的应用
    No compatible targets were found Do you wish to a add new Android Virtual Device ?
    doc命令大全(详细版)
    安装Qt5.9
    ADT Bundle下载和安装
    阶段性学习内容
    DDMS files not found
    五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程
  • 原文地址:https://www.cnblogs.com/yuhoukongshan/p/5799780.html
Copyright © 2020-2023  润新知