zoukankan      html  css  js  c++  java
  • SQL join的介绍

    学员表

    SELECT * FROM tb_address;

    SELECT * FROM tb_student

    1.JOIN关联两个表数据,将匹配数据展示,数据无匹配值则不展示

    注释:INNER JOIN与JOIN是相同

    SELECT
    *
    FROM
    tb_student stu
    JOIN tb_address address
    ON stu.`id` = address.`stu_id` ;

     2.LEFT JOIN返回左表的全部行和右表满足ON条件的行,如果左表的行在右表中没有匹配,那么这一行右表中对应数据用NULL代替。

    举例如下 从 student角度查询对应的address数据,student信息全部展示,没有对应address值展示null

    SELECT 

    *
    FROM
    tb_student stu
    LEFT JOIN tb_address address
    ON stu.`id` = address.`stu_id` ;

    3.RIGHT JOIN返回右表的全部行和左表满足ON条件的行,如果右表的行在左表中没有匹配,那么这一行左表中对应数据用NULL代替。

    举例如下 从 address角度查询对应学员信息,address表数据全部展示,无对应学员信息则展示null

    SELECT 

    *
    FROM
    tb_student stu
    RIGHT JOIN tb_address address
    ON stu.`id` = address.`stu_id` ;

     

    4.FULL JOIN 会从左表 和右表 那里返回所有的行。如果其中一个表的数据行在另一个表中没有匹配的行,那么对面的数据用NULL代替

    不常用,有时候数据库不支持

    举例:

    学员课程表关联学员班主任表,学员班主任可以为空,且去除无效数据

    错误:

    关联后,再取表中deleted = 0数据,会将null值排除,数据会遗漏

    正确:

    关联表时取表中有效数据

  • 相关阅读:
    8.20 附加赛3
    8.22 附加赛4
    Codeforces Round #505 (Div 1 + Div 2) (A~D)
    8.9 附加赛2
    8.10 正睿暑期集训营 Day7
    8.9 正睿暑期集训营 Day6
    8.8 正睿暑期集训营 Day5
    8.7 正睿暑期集训营 Day4
    8.6 正睿暑期集训营 Day3
    8.5 正睿暑期集训营 Day2
  • 原文地址:https://www.cnblogs.com/87060524test/p/10417011.html
Copyright © 2011-2022 走看看