6hz7vif 发表于 2024-8-4 10:30:25

MySQL 的内连接、左连接、右连接,基本亦要讲清楚!


    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在 MySQL 中,内连接(INNER JOIN)、左连接(LEFT JOIN)和右连接(RIGHT JOIN)是用于在多个表之间进行<span style="color: black;">相关</span><span style="color: black;">查找</span>的方式。它们之间的区别如下:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;"><span style="color: black;">1、内连接(INNER JOIN):</span></strong> 内连接返回两个表中匹配的行,<span style="color: black;">仅有</span>在连接<span style="color: black;">要求</span>满足时才返回结果。即只返回两个表中共有的数据。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">示例脚本:</p>sqlCopy Code<span style="color: black;">-- 假设有两个表:students 和 scores</span>

    <span style="color: black;">-- <span style="color: black;">查找</span>学生及其对应的成绩信息</span>
    <span style="color: black;">SELECT</span> students.name, scores.score
    <span style="color: black;">FROM</span> students
    <span style="color: black;">INNER</span> <span style="color: black;">JOIN</span> scores <span style="color: black;">ON</span>students.id = scores.student_id;<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在<span style="color: black;">以上</span>示例中,<span style="color: black;">运用</span> INNER JOIN 将 students 表和 scores 表连接起来,并且只返回两个表中 student_id 匹配的行。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;"><span style="color: black;">2、左连接(LEFT JOIN):</span></strong> 左连接返回左表中的所有行,以及与右表匹配的行。<span style="color: black;">倘若</span>右表中<span style="color: black;">无</span>匹配的行,则返回 NULL 值。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">示例脚本:</p>sqlCopy Code<span style="color: black;">-- 假设有两个表:departments 和 employees</span>

    <span style="color: black;">-- <span style="color: black;">查找</span><span style="color: black;">分部</span>及其对应的员工信息</span>
    <span style="color: black;">SELECT</span> departments.name, employees.name
    <span style="color: black;">FROM</span> departments
    <span style="color: black;">LEFT</span> <span style="color: black;">JOIN</span> employees <span style="color: black;">ON</span>departments.id = employees.department_id;<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在<span style="color: black;">以上</span>示例中,<span style="color: black;">运用</span> LEFT JOIN 将 departments 表和 employees 表连接起来,并且返回 departments 表中的所有行,以及与之匹配的 employees 表中的行。<span style="color: black;">倘若</span>某个<span style="color: black;">分部</span><span style="color: black;">无</span>对应的员工,则返回 NULL 值。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;"><span style="color: black;">3、右连接(RIGHT JOIN):</span></strong> 右连接返回右表中的所有行,以及与左表匹配的行。<span style="color: black;">倘若</span>左表中<span style="color: black;">无</span>匹配的行,则返回 NULL 值。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">示例脚本:</p>sqlCopy Code<span style="color: black;">-- 假设有两个表:orders 和 customers</span>

    <span style="color: black;">-- <span style="color: black;">查找</span>订单及其对应的客户信息</span>
    <span style="color: black;">SELECT</span>orders.order_number, customers.name<span style="color: black;">FROM</span> orders
    <span style="color: black;">RIGHT</span> <span style="color: black;">JOIN</span> customers <span style="color: black;">ON</span> orders.customer_id = customers.id;
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在<span style="color: black;">以上</span>示例中,<span style="color: black;">运用</span> RIGHT JOIN 将 orders 表和 customers 表连接起来,并且返回 customers 表中的所有行,以及与之匹配的 orders 表中的行。<span style="color: black;">倘若</span>某个客户<span style="color: black;">无</span>对应的订单,则返回 NULL 值。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">总结:</p>内连接(INNER JOIN)返回两个表中匹配的行。左连接(LEFT JOIN)返回左表中的所有行,以及与右表匹配的行。右连接(RIGHT JOIN)返回右表中的所有行,以及与左表匹配的行。 这些连接类型<span style="color: black;">能够</span><span style="color: black;">按照</span><span style="color: black;">实质</span>需求<span style="color: black;">选取</span>,以实现<span style="color: black;">区别</span>的<span style="color: black;">查找</span><span style="color: black;">规律</span>。


longshao2024 发表于 2024-8-29 02:44:28

感谢您的精彩评论,为我带来了新的思考角度。

4lqedz 发表于 2024-9-27 21:28:19

楼主听话,多发外链好处多,快到碗里来!外链论坛 http://www.fok120.com/

nykek5i 发表于 2024-9-30 23:28:45

你的见解真是独到,让我受益匪浅。

m5k1umn 发表于 2024-10-6 00:07:25

你的留言真是温暖如春,让我感受到了无尽的支持与鼓励。

4zhvml8 发表于 2024-10-10 23:46:25

i免费外链发布平台 http://www.fok120.com/

nqkk58 发表于 3 天前

大势所趋,用于讽刺一些制作目的就是为了跟风玩梗,博取眼球的作品。
页: [1]
查看完整版本: MySQL 的内连接、左连接、右连接,基本亦要讲清楚!