内连接,外连接(左外,右外),全连接(交集),交叉连接(笛卡尔积)

    先略两个表

    内连接,外连接(左外,右外),全连接(交集),交叉连接(笛卡尔积)

    首先左连接:SELECT * FROM test1 a LEFT JOIN test2 b ON a.id = b.id;

    内连接,外连接(左外,右外),全连接(交集),交叉连接(笛卡尔积)(尴尬,join打错了,毕竟英语没有6级(#^_^!))

    解释下就是以左边表id(案例里面是test1)为基础和右表id对比,左表有的右表也有就也出来,右表没有的就NULL咯,右连接和左连接相反

    右连接:SELECT * FORM test1 a RIGHT JOIN test2 b ON a.id = b.id;

    内连接,外连接(左外,右外),全连接(交集),交叉连接(笛卡尔积)

    enh,以右边表id为基础和左边表id对比,右边表有的左边表也有就显示出来,左边表没有的就NULL

    内连接:SELECT * FROM test1 a INNER JOIN test2 b ON a.id = b.id;

    内连接,外连接(左外,右外),全连接(交集),交叉连接(笛卡尔积)

    解释的话就是:两个表的交集,就是左表和右表都有的才显示出来

    全连接:(SELECT * FROM test1) UNION (SELECT * FROM test2);

     内连接,外连接(左外,右外),全连接(交集),交叉连接(笛卡尔积)

     UNION是两个交集,相当于两张表数据和在一起(不重复),下面是会重复的UNION ALL:(SELECT * FROM test1) UNION ALL (SELECT * FROM test2);

       内连接,外连接(左外,右外),全连接(交集),交叉连接(笛卡尔积)

    交叉连接:SELECT * FROM test1 CROSS JOIN test2;

     内连接,外连接(左外,右外),全连接(交集),交叉连接(笛卡尔积)

          OVER

ps:在Oracle中左右连接使用的是+,如  where a.id(+) = b.id  左连接

相关文章: