• oracle的join语法及行专列


    sql1999语法

    CROSS JOIN        等同于92的笛卡尔积

    select * from  table1 cross join table2       

    NATURAL JOIN        相当于等值连接,不需要连接条件,会从两张表找到相同的列做连接

                                    当两张表不具备相同列名时,会进行笛卡尔积操作等同于cross join

    select * from table1 tb1 natural join table2 tb2 on tb1.column=tb2.column

    ON子句        添加连接条件,相当于92中的等值连接

    select  * from table1 t1  join  table2 t2  on t1.column=t2.column

                            相当于92中的非等值连接

    select  *  from table1 t1  join  table2  t2  on t1.column  between  t2.column1  and  t2.column2

    LEFT  OUTER  JOIN        会把左表中的数据全部正常显示,右表没有对应则为空

    select  * from table1  t1  left outer  join  table2 t2  on  t1.column = t2.column

    select  * from table1  t1 ,table2  t2  where t1.column = t2.column(+)

    RIGHT  OUTER  JOIN        会把右表中的数据全部正常显示,左表没有对应则为空

    select  *  from table1 t1   right  outer join  table2 t2 on  t1.column= t2.column

    select  * from table1  t1 ,table2  t2  where  t1.column(+) = t2.column

    FULL  OUTER  JOIN        相当于左外连接和右外连接

    select  *  from table1  t1  full  outer  join  table2  t2  on  t1.column= t2.column

    INNER  OUTER  JOIN        两张表的连接查询,只会查询出有匹配记录的数据

    select * from  table1  t1  inner   join  table2  t2  on  t1.column = t2.column

    select  *  from  table1  t1  join  table2  t2  on  t1.column= t2.column

    USING        除了可以使用on表示连接条件之外,也可以使用using作为连接条件,不允许查询的字段有任何前缀

    select * from  table1 t1  join table2  t2  using(column)

    select  *  from bjb  join  h123  on  bjb.xh=h123.xh

     总结两种语法的SQL语句没有任何限制,可以随便用,但是建议使用99语法,不要使用92语法,SQL语句显得清楚明了

    子查询:嵌套在其他sql语句中的完整sql语句,可以称为子查询

    分类:

            单行子查询

            多行子查询

  • 相关阅读:
    K8S 资源编排文件简介
    6G时代,即将来临!
    Failed to execute org.scala-tools:maven-scala-plugin:2.15.2解决
    Redis
    Cadence导入IBIS模型用于仿真
    OkHttp原理分析总结
    websocket
    C习题002:澡堂洗澡
    docker简单介绍 和 常用命令
    [Android Frameworks] native Binder and IMemory
  • 原文地址:https://blog.csdn.net/qq_58000413/article/details/127077335