慢吞云雾缓吐愁 发表于 2024-8-31 15:25:48

SQL JOIN (数据库的关联查询)

    
目次
JOIN 是什么?
JOIN 的主要范例
        INNER JOIN  (内连接)
        LEFT JOIN(左连接)
        RIGHT JOIN(右链接)
        FULL JOIN(全连接)
        CROSS JOIN(交织连接)
总结

        在数据库查询数据过程中往往须要将不同表的某个字段组合成一个新的表作为查询效果返回,通过JOIN可以或许同时看到我们想看到的有关联的信息。
        假如只是想要同时查询不同表的不同字段的话,完全可以使用SELECT同时选取多个字段,再使用WHERE添加筛选条件达到同样的效果。
JOIN 是什么?

        JOIN 是一种基于两个表的拥有共同字段的将两个表的行结合起来的利用。
        以下是文章用到的表:table_1,table_2
https://img-blog.csdnimg.cn/direct/35e7ba4a43d54907ab1f55788bd0ac77.png
https://img-blog.csdnimg.cn/direct/9a734716bb3e407d9260410fc30e17d6.png
JOIN 的主要范例

        INNER JOIN  (内连接)

        INNER JOIN 返回两个表中相匹配的行,假如一个表的某一行在另一个表中没有匹配项,则不会出如今效果集中。
        INNER JOIN 的基本情势:
   SELECT column_1,column_2,...
FROM table_1 
 INNER JOIN table_2
 ON condition;
        表明:
                1、column_1,column_2,...  ——连接的字段名称,可以是两个或多个字段,字段之间使用逗号隔开。
                2、table_1 , table_2 ——连接的表的名称。
                3、INNER JOIN ——连接方式
                4、condition ——连接条件
        注意:其他几种连接方式的表明与此一致。
   使用 INNER JOIN 查询选手的上场次数:
https://img-blog.csdnimg.cn/direct/5edf1666e1624418bda0dcd30c60f60f.png

        LEFT JOIN(左连接)

        LEFT JOIN 返回左表中全部的行,假如右表中没有相匹配的项,那么该行将会以NULL值返回。
        LEFT JOIN 的基本情势:
   SELECT column_1,column_2,...
FROM table_1 
 LEFT JOIN table_2
 ON condition;
        上述基本情势的表明与INNER JOIN 一致。
   使用 RIGHT JOIN 查询选手的上场次数:
https://img-blog.csdnimg.cn/direct/c54c6f79f82a4e379bdb8c5523e4d5a3.png
可以看到,4、5号的上场次数显示为NULL值,这是因为在 表table_2中没有与之匹配的行。
        RIGHT JOIN(右链接)

        RIGHT JOIN 与 LEFT JOIN 的情况相反,返回右表中全部的行,假如左表中没有相匹配的项,那么该行将会以NULL值返回。
           RIGHT JOIN 的基本情势:
   SELECT column_1,column_2,...
FROM table_1 
 RIGHTJOIN table_2
 ON condition;
上述基本情势的表明与INNER JOIN 一致。
   使用 RIGHT JOIN 查询全部上场情况:
https://img-blog.csdnimg.cn/direct/58f0f3d9961b4ce19fd6adcc333b6060.png
在效果集中,table_1 中没有匹配的项,所以为NULL值。
        FULL JOIN(全连接)

        FULL JOIN与INNER JOIN相反,他会返回左右表中全部的行,没有匹配项的行包含NULL值。
FULL JOIN 的基本情势:
   SELECT column_1,column_2,...
FROM table_1 
 FULL JOIN table_2
 ON condition;
上述基本情势的表明与INNER JOIN 一致。
   使用 FULL JOIN 查看全部的选手和上场情况:
https://img-blog.csdnimg.cn/direct/208a08da04b141a18c01fd88d2206754.png
        CROSS JOIN(交织连接)

        CROSS JOIN 返回的第一个表的每一行与第二个表的每一行的组合,效果集的行的总数是两个表的行的乘积,使用WHERE添加条件,防止一些纪录多的表与其他表使用CROSS JOIN时产生更大的表。
        
        CROSS JOIN 的基本情势:
   SELECT column_1,column_2,...
FROM table_1 
 FULL JOIN table_2
;
        表明:CROSS JOIN 的情势与其他的连接方式相差不发,主要区别在于其他连接方式使用 ON 添加条件,而 CROSS JOIN 使用WHERE添加条件。
           CROSS JOIN 的使用实例:
        不添加加条件时:
https://img-blog.csdnimg.cn/direct/8169d471dff4440ca0b66537a23bdb67.png
        添加条件后:
https://img-blog.csdnimg.cn/direct/78a1ba4260f742f8badc13126a60512d.png
总结

        在数据库中查询数据时,一个表查询一次属实麻烦,而使用关联查询可以或许帮助我们更好地整合不同表中地信息,以获得更全面地数据视图。关联查询也让查询多个表地数据变得方便,让我们更高效地管理数据库。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: SQL JOIN (数据库的关联查询)