瑞星 发表于 2024-6-15 03:43:41

SQL中的内毗连(inner join)用法

一、什么是内毗连(inner join)
`INNER JOIN`是SQL中的一种毗连类型,用于将两个或多个表中的记录根据某个条件举行匹配,并返回匹配的记录。它只返回那些在两个表中都有匹配的记录。
以下是一个示例的`INNER JOIN`查询语句:
SELECT table1.column1, table2.column2
FROM table1
INNER JOIN table2
ON table1.common_column = table2.common_column;
二、内毗连(inner join)的用法
下面我们使用3个查询示例,讲解内毗连(inner join)在查询中的使用场景。
以下是一份学生信息登记表、一份考试结果表、一份出生地登记表
表1:学生信息登记表
https://img-blog.csdnimg.cn/2c3b662901c4421187258035c30e24bd.png
 
表2:部分学天生绩表
https://img-blog.csdnimg.cn/8a454e3dc57c49038c5e791988d2a3c0.png
表3:出生地登记表
https://img-blog.csdnimg.cn/f210bc086b92452ba01d639e4856a561.png
1、要求查询出参加了考试的学生信息。
使用'学号'作为毗连键,毗连两个表
SELECT
        y.学号,
        y.姓名,
        y.总分,
        x.班级,
        x.入学日期,
        x.联系电话
FROM
        学籍信息 AS x
        INNER JOIN 部分学生成绩 AS y
        ON x.学号 = y.学号; 以上语句表示让表“学籍信息”的列“学号”和表“部分学天生绩”的列“学号”作为匹配的毗连键。
可以看到使用inner join (内毗连)将两个表毗连后,对有考试结果的学生信息举行了补全
https://img-blog.csdnimg.cn/7ec4cc742a5a4d08a689375864521a86.png
2、要求查询出考试结果在90分以上的学生信息。
SELECT
        y.学号,
        y.姓名,
        y.总分,
        x.班级,
        x.入学日期,
        x.联系电话
FROM
        学籍信息 AS x
        INNER JOIN 部分学生成绩 AS y
        ON x.学号 = y.学号
        where 总分 >= 90; 以上查询通过设置where过滤条件,查询出了总分大于90分的学生信息。
https://img-blog.csdnimg.cn/1c4c0d7e25f44d9fbc9a2c61fb578101.png3、要求查询出考试结果在90分以上学生的户籍地。
SELECT
        y.学号,
        y.姓名,
        y.总分,
        x.班级,
        x.入学日期,
        x.联系电话,
        z.户口性质,
        z.户籍地
FROM
        学籍信息 AS x
        INNER JOIN 部分学生成绩 AS y
        ON x.学号 = y.学号
        inner join 出生地 as z
        on x.学号 = z.学号
        where 总分 >= 90; 以上查询通过毗连3个表,设置where过滤条件,查询出了总分大于90分的学生信息。
https://img-blog.csdnimg.cn/b31a9a09bc0a448088eeea820aceb5d1.png
 
 
 
 
 
 
 

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