美文网首页
SQL 表连接

SQL 表连接

作者: 某某香肠 | 来源:发表于2018-07-28 20:43 被阅读0次

    两表做全相乘(交叉连接)

    select * from table1,table2;

    返回一个全新的表,其行数为两表的行数相乘,每一行的为两表每一行的两两结合,列数为两表列数的和。

    因为这种方法会生成一个大表,非常占内存(比如两张10000行的表相乘就得到1×108行的表),所以应尽量避免使用。

    左连接

    table1 left join table2 on [条件];

    当[条件]为真时,则将table2对应的行取出并将其添加到table1对应的行上,以形成一张新表。如果table1的某行在table2中没有匹配行,则新表中该行的保留table1的数据,table2列的值均为NULL。由于建立了索引,因此效率非常快。

    右连接

    table1 right join table2 on [条件];

    与左连接相反,保留table2的所有行,如果table2的某行在table1中没有匹配行,则新表中该行的保留table2的数据,table1列的值均为NULL。

    内连接

    table1 inner join table2 on [条件];

    与左右连接相似,但不同的时,不会保留table1和table2没有匹配上的行(也就是左右连接的交集)。

    完全连接

    table1 full join table2 on [条件];
    保留左右表的所有行,不匹配的用NULL填充(也就是左右连接的并集),但mysql中不支持该语法。

    相关文章

      网友评论

          本文标题:SQL 表连接

          本文链接:https://www.haomeiwen.com/subject/vtramftx.html