`

SQL查询语句的各类联接

SQL 
阅读更多
  • inner    join    内联接(左右不为Null)
    select    *    from    tableA    a   inner  join    tableB    b    on    a.id=b.id
        内联接——只产生所有表中存在匹配的记录,就是常见的where语句连接,两边的表返回的都是匹配的记录。
  • left    outer    join    左外联接(左全右Null)
    select    *    from    tableA    a    left    join    tableB    b    on    a.id=b.id
       左外联接——左表的所有记录都出现在结果集中,而右表有匹配则显示记录,无匹配则显示NULL。
  • rigth    outer    join   右外联接(左Null右全)
    select    *    from    tableA    a    right    join    tableB    b    on    a.id=b.id
       右外联接——右表的所有记录都出现在结果集中,而左表有匹配则显示记录,无匹配则显示NULL。
  • full    outer    join  全外联接(左外联接 + 右外联接)
    select    *    from    tableA    a    full    join    tableB    b    on    a.id=b.id
       全外联接——返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
  • cross    join   交叉联接(返回笛卡尔乘积)
    select    *    from    tableA    a    cross    join    tableB 
         交叉联接---返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics