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

    

目录

JOIN 是什么?

JOIN 的主要类型

        INNER JOIN  (内连接)

        LEFT JOIN(左连接)

        RIGHT JOIN(右链接)

        FULL JOIN(全连接)

        CROSS JOIN(交叉连接)

总结


        在数据库查询数据过程中往往需要将不同表的某个字段组合成一个新的表作为查询结果返回,通过JOIN能够同时看到我们想看到的有关联的信息。

        如果只是想要同时查询不同表的不同字段的话,完全可以使用SELECT同时选取多个字段,再使用WHERE添加筛选条件达到同样的效果。


JOIN 是什么?

        JOIN 是一种基于两个表的拥有共同字段的将两个表的行结合起来的操作。

        以下是文章用到的表:table_1,table_2

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 查询选手的上场次数:

        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 查询选手的上场次数:

可以看到,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 查询所有上场情况:

在结果集中,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 查看所有的选手和上场情况:

        CROSS JOIN(交叉连接)

        CROSS JOIN 返回的第一个表的每一行与第二个表的每一行的组合,结果集的行的总数是两个表的行的乘积,使用WHERE添加条件,防止一些记录多的表与其他表使用CROSS JOIN时产生更大的表。

        

        CROSS JOIN 的基本形式:

SELECT column_1,column_2,...

FROM table_1 

 FULL JOIN table_2

[WHERE condition];

        解释:CROSS JOIN 的形式与其他的连接方式相差不发,主要区别在于其他连接方式使用 ON 添加条件,而 CROSS JOIN 使用WHERE添加条件。

        CROSS JOIN 的使用实例:

        不添加加条件时:

        添加条件后:

总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值