左外连接/返回左表所有内容和条件满足的左右表

博客提及表的left join操作,left join是数据库中常用的连接方式,可用于从多个表中获取相关数据,在数据处理和分析中较为重要。

在这里插入图片描述
表1 left join 表2 on…

<think>我们已有以下结构数据(根据用户提供的INSERT语句): 教师(t): tno, sn, sex, age, prof, sal, maj, dept 学生(S): sno, sn, sex, age, maj, dept 课程(c): cno, cn, ct 授课(tc): tno, cno, tcdate 选课(sc): sno, cno, score 接下来,我们将分别用自然连接、内连接外连接、右外连接来实现每个查询。注意:自然连接会自动根据相同列名进行连接,而其他连接需要明确指定连接条件。 1. 查询所有男生的姓名成绩。 - 自然连接:自然连接会在学生S选课sc之间根据相同的列名(sno)进行连接,但注意,自然连接会去重相同列名的列,所以结果中sno只出现一次。 - 内连接:显式指定连接条件(S.sno = sc.sno),然后筛选性别为男。 - 外连接:以学生左表连接选课,这样即使没有成绩的男生也会被列出(成绩为NULL)。 - 右外连接:以选课为右连接学生,但这样会丢失没有选课的男生,所以不适用。因此,我们可以将学生放在右边,然后使用外连接,这样等价于外连接(学生在右边,右外连接则保留学生所有行)。但为了统一,我们通常用外连接,这里我们尝试用右外连接实现同样的效果(即保留所有男生,包括没有选课的)。 2. 查询计算机学院的学生的姓名及其所选修的课程名。 - 需要连接学生S、选课sc课程c。 - 自然连接:根据相同列名自动连接(Ssc通过sno,scc通过cno)。 - 内连接:显式指定连接条件。 - 外连接:以计算机学院的学生为左表连接选课课程,这样即使没有选课的学生也会被列出(课程名为NULL)。但题目要求是选修的课程名,所以没有选课的学生的课程名该是空的,符合要求。 - 右外连接:这里不适用,因为我们要的是计算机学院的所有学生(包括没有选课的),所以该以学生左表。但为了演示右外连接,我们可以将学生放在右边,然后右外连接选课课程,这样等价于外连接(学生在右边,右外连接则保留学生所有行)。 3. 查询所有讲师的教师编号、教师姓名、授课课程名。 - 注意:讲师的条件是prof='讲师' - 需要连接教师t、授课tc课程c。 - 自然连接:根据相同列名(tno连接ttc,cno连接tcc)自动连接。 - 内连接:显式指定连接条件。 - 外连接:以讲师为左表(教师按讲师筛选),连接授课课程,这样即使该讲师没有授课也会列出(课程名为NULL)。但题目要求是授课课程名,所以没有授课的讲师将没有课程名,符合要求。 - 右外连接:同样,我们可以用右外连接,但为了保证讲师全部出现,我们通常用外连接。这里为了演示,用右外连接实现(将教师放在右边)。 4. 查询所有信息专业学生的姓名以及选修的课程名以及考试成绩。 - 信息专业学生的条件是:maj='信息' - 需要连接学生S、选课sc课程c。 - 自然连接:自动连接相同列名。 - 内连接:显式指定条件。 - 外连接:以信息专业学生为左表连接选课课程,这样即使没有选课的学生也会被列出(课程名成绩为NULL)。 - 右外连接:同样,我们可以用右外连接,将学生放在右边,然后左表是选课课程连接结果,这样保留学生所有行(即信息专业学生)。 5. 查询石丽老师所带课程及学生选课信息成绩。 - 需要连接教师t(条件:sn='石丽')、授课tc、课程c、选课sc、学生S。 - 自然连接:自动根据相同列名连接。 - 内连接:显式指定连接条件(t.tno=tc.tno, tc.cno=c.cno, c.cno=sc.cno, sc.sno=S.sno)。 - 外连接:这里我们希望得到石丽老师的所有授课课程,即使没有学生选课(那么学生信息成绩为NULL)。同时,对于有选课的,显示学生信息成绩。所以以教师(石丽)为起点,外连接授课、课程,再外连接选课学生。 - 右外连接:为了演示,我们可以尝试用右外连接,但逻辑上外连接更自然。 注意:由于自然连接在实际使用中容易出错(因为会自动匹配所有相同列名,如果多个中存在多个相同列名,可能导致连接条件不符合预期),因此我们通常推荐使用显式连接条件。但为了满足题目要求,我们仍然给出自然连接的写法。 下面我们分别写出每个查询的四种连接方式的SQL语句。 注意:由于列名大小写问题,在MySQL中可能不区分,但在其他数据库可能区分。这里按照用户提供的列名(例如,名t, S, c, tc, sc,列名如tno, sn等)。 另外,由于S学生S,t教师t,为了避免混淆,我们使用别名。 开始写SQL: 1. 查询所有男生的姓名成绩。 - 自然连接(NATURAL JOIN): ```sql SELECT S.sn AS 姓名, sc.score AS 成绩 FROM S NATURAL JOIN sc WHERE S.sex = '男'; ``` 注意:自然连接会基于sno自动连接,但是这里Ssc都有sno,所以会按sno连接。但是,自然连接会合并相同列名,所以结果中sno只出现一次。另外,自然连接是内连接,所以只会返回有选课的男生。 - 内连接(INNER JOIN): ```sql SELECT S.sn AS 姓名, sc.score AS 成绩 FROM S INNER JOIN sc ON S.sno = sc.sno WHERE S.sex = '男'; ``` - 外连接(LEFT OUTER JOIN): ```sql SELECT S.sn AS 姓名, sc.score AS 成绩 FROM S LEFT OUTER JOIN sc ON S.sno = sc.sno WHERE S.sex = '男'; ``` - 右外连接(RIGHT OUTER JOIN): 为了得到所有男生(包括没有选课的),我们可以将S放在右边,然后sc外连接S,这样S的所有男生都会出现。或者我们也可以将S放在边,用外连接已经实现。这里为了演示右外连接,我们写成: ```sql SELECT S.sn AS 姓名, sc.score AS 成绩 FROM sc RIGHT OUTER JOIN S ON sc.sno = S.sno WHERE S.sex = '男'; ``` 2. 查询计算机学院的学生的姓名及其所选修的课程名。 - 自然连接(需要连接S、sc、c三张): ```sql SELECT S.sn AS 姓名, c.cn AS 课程名 FROM S NATURAL JOIN sc NATURAL JOIN c WHERE S.dept = '计算机'; ``` 注意:这里自然连接会基于sno连接Ssc,再基于cno连接scc。但是,Sc没有相同的列名,所以不会产生额外的连接条件。但是,自然连接会合并所有相同列名的列,所以snocno在结果中只出现一次。另外,这个连接是内连接,所以只返回有选课且选课对的课程存在的计算机学院学生。 - 内连接: ```sql SELECT S.sn AS 姓名, c.cn AS 课程名 FROM S INNER JOIN sc ON S.sno = sc.sno INNER JOIN c ON sc.cno = c.cno WHERE S.dept = '计算机'; ``` - 外连接(保留计算机学院的所有学生,即使他们没有选课): ```sql SELECT S.sn AS 姓名, c.cn AS 课程名 FROM S LEFT OUTER JOIN sc ON S.sno = sc.sno LEFT OUTER JOIN c ON sc.cno = c.cno WHERE S.dept = '计算机'; ``` - 右外连接:我们可以将计算机学院的学生放在右边,然后先用scc做内连接外连接,再用右外连接S。但是这样写复杂,并且为了保留所有学生,我们通常用外连接。这里为了演示右外连接,我们可以这样写(效果与上面的外连接相同): ```sql SELECT S.sn AS 姓名, c.cn AS 课程名 FROM sc RIGHT OUTER JOIN S ON sc.sno = S.sno LEFT OUTER JOIN c ON sc.cno = c.cno WHERE S.dept = '计算机'; ``` 解释:先右外连接S,这样S的所有计算机学院学生都会出现(sc可能为NULL),然后再外连接课程c(即使在sc.cno为NULL的情况下,c连接也会为NULL)。 3. 查询所有讲师的教师编号、教师姓名、授课课程名。 讲师的条件:t.prof='讲师' - 自然连接连接t、tc、c): ```sql SELECT t.tno AS 教师编号, t.sn AS 教师姓名, c.cn AS 授课课程名 FROM t NATURAL JOIN tc NATURAL JOIN c WHERE t.prof = '讲师'; ``` 注意:自然连接会自动根据tno连接ttc,再根据cno连接tcc。但是,这个连接是内连接,所以只会返回有授课的讲师。 - 内连接: ```sql SELECT t.tno AS 教师编号, t.sn AS 教师姓名, c.cn AS 授课课程名 FROM t INNER JOIN tc ON t.tno = tc.tno INNER JOIN c ON tc.cno = c.cno WHERE t.prof = '讲师'; ``` - 外连接(保留所有讲师,即使他们没有授课): ```sql SELECT t.tno AS 教师编号, t.sn AS 教师姓名, c.cn AS 授课课程名 FROM t LEFT OUTER JOIN tc ON t.tno = tc.tno LEFT OUTER JOIN c ON tc.cno = c.cno WHERE t.prof = '讲师'; ``` - 右外连接:我们可以将教师放在右边,然后tcc先做内连接,再用右外连接教师。这样所有讲师都会出现(因为右外连接保留教师): ```sql SELECT t.tno AS 教师编号, t.sn AS 教师姓名, c.cn AS 授课课程名 FROM tc INNER JOIN c ON tc.cno = c.cno -- 先连接tcc,得到授课课程的信息 RIGHT OUTER JOIN t ON tc.tno = t.tno -- 再右外连接教师,保留教师所有行 WHERE t.prof = '讲师'; ``` 4. 查询所有信息专业学生的姓名以及选修的课程名以及考试成绩。 条件:S.maj='信息' - 自然连接(S、sc、c): ```sql SELECT S.sn AS 姓名, c.cn AS 课程名, sc.score AS 考试成绩 FROM S NATURAL JOIN sc NATURAL JOIN c WHERE S.maj = '信息'; ``` - 内连接: ```sql SELECT S.sn AS 姓名, c.cn AS 课程名, sc.score AS 考试成绩 FROM S INNER JOIN sc ON S.sno = sc.sno INNER JOIN c ON sc.cno = c.cno WHERE S.maj = '信息'; ``` - 外连接(保留所有信息专业的学生): ```sql SELECT S.sn AS 姓名, c.cn AS 课程名, sc.score AS 考试成绩 FROM S LEFT OUTER JOIN sc ON S.sno = sc.sno LEFT OUTER JOIN c ON sc.cno = c.cno WHERE S.maj = '信息'; ``` - 右外连接: ```sql SELECT S.sn AS 姓名, c.cn AS 课程名, sc.score AS 考试成绩 FROM sc RIGHT OUTER JOIN S ON sc.sno = S.sno LEFT OUTER JOIN c ON sc.cno = c.cno WHERE S.maj = '信息'; ``` 5. 查询石丽老师所带课程及学生选课信息成绩。 条件:t.sn='石丽' - 自然连接连接t, tc, c, sc, S): ```sql SELECT c.cn AS 课程名, S.sn AS 学生姓名, sc.score AS 成绩 FROM t NATURAL JOIN tc NATURAL JOIN c NATURAL JOIN sc NATURAL JOIN S WHERE t.sn = '石丽'; ``` 注意:自然连接会自动根据相同的列名(tno, cno, sno)连接,但是这里需要注意,tcsc都有cno,但是tc没有sno,sc没有tno,所以连接顺序很重要。实际上,自然连接连接tcc时根据cno,然后连接scc也是根据cno,但这样连接可能会导致数据不准确?而且,我们无法通过自然连接明确指定tcsc之间的关联(它们之间没有直接相同列名?tc有tnocno,sc有snocno,所以共同列是cno,但这样连接会得到该课程的所有学生,而不仅是石丽老师授课的班级?)。所以自然连接在这里可能不合适,因为石丽老师讲授的课程可能有多门,而每门课程可能有多个学生选课,但是自然连接只能根据列名相同来连接,而无法指定通过课程号cno连接后,还要确保该课程是石丽老师授课的?实际上,在自然连接中,ttc通过tno连接,tcc通过cno连接,然后csc通过cno连接,scS通过sno连接。所以理论上是可以的,但是要注意,如果tcsc中都有cno,那么自然连接会合并cno列,所以连接顺序没有要求,因为最终都是通过相同列名连接。但是,由于tcsc都有cno,在连接tcsc时,也会根据cno连接?而在我们的自然连接链中,是先连接了tcc,然后再连接sc,这样sc连接的是c,所以不会直接连接tc。所以这个自然连接该是:t自然连接tc(使用tno),然后tc自然连接c(使用cno),然后c自然连接sc(使用cno),然后sc自然连接S(使用sno)。所以可以。 - 内连接: ```sql SELECT c.cn AS 课程名, S.sn AS 学生姓名, sc.score AS 成绩 FROM t INNER JOIN tc ON t.tno = tc.tno INNER JOIN c ON tc.cno = c.cno INNER JOIN sc ON c.cno = sc.cno INNER JOIN S ON sc.sno = S.sno WHERE t.sn = '石丽'; ``` - 外连接(为了包括石丽老师授课的课程,即使没有学生选课): ```sql SELECT c.cn AS 课程名, S.sn AS 学生姓名, sc.score AS 成绩 FROM t INNER JOIN tc ON t.tno = tc.tno -- 假设石丽老师一定授课了,所以用内连接tc INNER JOIN c ON tc.cno = c.cno -- 课程c肯定存在,所以内连接 LEFT OUTER JOIN sc ON c.cno = sc.cno -- 该课程可能没有学生选,所以用外连接sc LEFT OUTER JOIN S ON sc.sno = S.sno -- 如果sc有记录,再连接学生 WHERE t.sn = '石丽'; ``` 注意:这里我们用了两个外连接,因为我们要确保石丽老师的所有课程都出现(即使没有学生选课)。另外,由于tcc我们假设课程信息是存在的,所以用内连接。如果tc中课程在c中不存在,那么内连接会过滤掉,但这种情况不该发生。 另一种写法(全部用外连接,但这样可能会包括没有授课的教师?但是我们用条件t.sn='石丽',并且tc可能为空,但我们希望即使没有授课也要显示教师信息吗?题目要求是所带课程,所以如果石丽老师没有授课,那么课程信息为空,也没有学生信息。所以我们可以这样写: ```sql SELECT c.cn AS 课程名, S.sn AS 学生姓名, sc.score AS 成绩 FROM t LEFT OUTER JOIN tc ON t.tno = tc.tno LEFT OUTER JOIN c ON tc.cno = c.cno LEFT OUTER JOIN sc ON c.cno = sc.cno LEFT OUTER JOIN S ON sc.sno = S.sno WHERE t.sn = '石丽'; ``` 这样,如果石丽老师没有授课,那么课程名、学生姓名成绩都是NULL。但是题目要求的是所带课程,所以没有授课的课程也就没有课程记录,所以这样写也是合理的。 但是,根据题目,石丽老师有授课记录(见tc),所以两种写法都可以。不过内连接tcc可以减少数据量。 - 右外连接:这个查询用右外连接不太自然,我们可以尝试将教师放在右边,但这样逻辑反而不清晰。因此,我们用外连接已经满足。为了演示右外连接,我们可以这样写: ```sql SELECT c.cn AS 课程名, S.sn AS 学生姓名, sc.score AS 成绩 FROM tc INNER JOIN c ON tc.cno = c.cno -- 先连接tcc RIGHT OUTER JOIN t ON tc.tno = t.tno -- 右外连接教师,保留所有教师(这里我们要的是石丽老师) LEFT OUTER JOIN sc ON c.cno = sc.cno -- 然后连接选课 LEFT OUTER JOIN S ON sc.sno = S.sno -- 再连接学生 WHERE t.sn = '石丽'; ``` 解释:先内连接tcc,然后右外连接教师(这样教师的所有教师都会出现,即使没有授课),然后外连接选课学生。这样,石丽老师如果没有授课,则课程信息为NULL,学生信息也为NULL。 注意:在实际查询中,我们可能会根据数据情况选择最合适的连接方式。上面的右外连接的写法可能不是最优的,但为了展示右外连接使用,我们这样写。 由于SQL语句较多,这里只给出每种连接方式的写法,实际执行时请根据数据库环境调整(如名大小写,字符串引号等)。 接下来,我们将按照要求生成相关问题。 </think>### 1. 查询所有男生的姓名成绩 #### 自然连接(NATURAL JOIN) ```sql SELECT S.sn AS 姓名, sc.score AS 成绩 FROM S NATURAL JOIN sc WHERE S.sex = '男'; ``` *说明*:自然连接自动基于相同列名 `sno` 匹配,但会过滤掉未选课的男生(内连接特性)[^2]。 #### 内连接(INNER JOIN) ```sql SELECT S.sn AS 姓名, sc.score AS 成绩 FROM S INNER JOIN sc ON S.sno = sc.sno WHERE S.sex = '男'; ``` *说明*:显式指定连接条件,同样只返回有成绩记录的男生[^3]。 #### 外连接(LEFT OUTER JOIN) ```sql SELECT S.sn AS 姓名, sc.score AS 成绩 FROM S LEFT OUTER JOIN sc ON S.sno = sc.sno WHERE S.sex = '男'; ``` *说明*:保留所有男生记录,未选课的学生成绩显示为 `NULL`[^1]。 #### 右外连接(RIGHT OUTER JOIN) ```sql SELECT S.sn AS 姓名, sc.score AS 成绩 FROM sc RIGHT OUTER JOIN S ON sc.sno = S.sno WHERE S.sex = '男'; ``` *说明*:等价于外连接,确保未选课的男生不被过滤[^3]。 --- ### 2. 查询计算机学院的学生的姓名及其所选修的课程名 #### 自然连接(NATURAL JOIN) ```sql SELECT S.sn AS 姓名, c.cn AS 课程名 FROM S NATURAL JOIN sc NATURAL JOIN c WHERE S.dept = '信息学院' AND S.maj = '计算机'; ``` *说明*:自动基于 `sno` `cno` 匹配,但会过滤未选课的学生[^3]。 #### 内连接(INNER JOIN) ```sql SELECT S.sn AS 姓名, c.cn AS 课程名 FROM S INNER JOIN sc ON S.sno = sc.sno INNER JOIN c ON sc.cno = c.cno WHERE S.dept = '信息学院' AND S.maj = '计算机'; ``` *说明*:精确匹配选课记录,仅返回有选课的学生[^2]。 #### 外连接(LEFT OUTER JOIN) ```sql SELECT S.sn AS 姓名, c.cn AS 课程名 FROM S LEFT OUTER JOIN sc ON S.sno = sc.sno LEFT OUTER JOIN c ON sc.cno = c.cno WHERE S.dept = '信息学院' AND S.maj = '计算机'; ``` *说明*:包含所有计算机学院学生,未选课者课程名显示为 `NULL`[^1]。 #### 右外连接(RIGHT OUTER JOIN) ```sql SELECT S.sn AS 姓名, c.cn AS 课程名 FROM sc RIGHT OUTER JOIN S ON sc.sno = S.sno LEFT OUTER JOIN c ON sc.cno = c.cno WHERE S.dept = '信息学院' AND S.maj = '计算机'; ``` *说明*:通过右外连接保留 `S` 所有行,确保未选课学生被包含[^3]。 --- ### 3. 查询所有讲师的教师编号、教师姓名、授课课程名 #### 自然连接(NATURAL JOIN) ```sql SELECT t.tno AS 教师编号, t.sn AS 教师姓名, c.cn AS 课程名 FROM t NATURAL JOIN tc NATURAL JOIN c WHERE t.prof = '讲师'; ``` *说明*:自动基于 `tno` `cno` 连接,但会过滤未授课的讲师[^3]。 #### 内连接(INNER JOIN) ```sql SELECT t.tno AS 教师编号, t.sn AS 教师姓名, c.cn AS 课程名 FROM t INNER JOIN tc ON t.tno = tc.tno INNER JOIN c ON tc.cno = c.cno WHERE t.prof = '讲师'; ``` *说明*:仅返回实际授课的讲师记录[^2]。 #### 外连接(LEFT OUTER JOIN) ```sql SELECT t.tno AS 教师编号, t.sn AS 教师姓名, c.cn AS 课程名 FROM t LEFT OUTER JOIN tc ON t.tno = tc.tno LEFT OUTER JOIN c ON tc.cno = c.cno WHERE t.prof = '讲师'; ``` *说明*:包含所有讲师,未授课者课程名显示为 `NULL`[^1]。 #### 右外连接(RIGHT OUTER JOIN) ```sql SELECT t.tno AS 教师编号, t.sn AS 教师姓名, c.cn AS 课程名 FROM tc RIGHT OUTER JOIN t ON tc.tno = t.tno LEFT OUTER JOIN c ON tc.cno = c.cno WHERE t.prof = '讲师'; ``` *说明*:通过右外连接确保未授课讲师不被遗漏[^3]。 --- ### 4. 查询所有信息专业学生的姓名以及选修的课程名以及考试成绩 #### 自然连接(NATURAL JOIN) ```sql SELECT S.sn AS 姓名, c.cn AS 课程名, sc.score AS 成绩 FROM S NATURAL JOIN sc NATURAL JOIN c WHERE S.maj = '信息'; ``` *说明*:自动匹配三关联,但过滤未选课的学生[^3]。 #### 内连接(INNER JOIN) ```sql SELECT S.sn AS 姓名, c.cn AS 课程名, sc.score AS 成绩 FROM S INNER JOIN sc ON S.sno = sc.sno INNER JOIN c ON sc.cno = c.cno WHERE S.maj = '信息'; ``` *说明*:精确返回选课学生的考试成绩[^2]。 #### 外连接(LEFT OUTER JOIN) ```sql SELECT S.sn AS 姓名, c.cn AS 课程名, sc.score AS 成绩 FROM S LEFT OUTER JOIN sc ON S.sno = sc.sno LEFT OUTER JOIN c ON sc.cno = c.cno WHERE S.maj = '信息'; ``` *说明*:包含所有信息专业学生,未选课者成绩课程名为 `NULL`[^1]。 #### 右外连接(RIGHT OUTER JOIN) ```sql SELECT S.sn AS 姓名, c.cn AS 课程名, sc.score AS 成绩 FROM sc RIGHT OUTER JOIN S ON sc.sno = S.sno LEFT OUTER JOIN c ON sc.cno = c.cno WHERE S.maj = '信息'; ``` *说明*:等价于外连接,确保未选课学生被包含[^3]。 --- ### 5. 查询石丽老师所带课程及学生选课信息成绩 #### 自然连接(NATURAL JOIN) ```sql SELECT c.cn AS 课程名, S.sn AS 学生姓名, sc.score AS 成绩 FROM t NATURAL JOIN tc NATURAL JOIN c NATURAL JOIN sc NATURAL JOIN S WHERE t.sn = '石丽'; ``` *说明*:自动匹配所有关联列,但会过滤未选课的课程[^3]。 #### 内连接(INNER JOIN) ```sql SELECT c.cn AS 课程名, S.sn AS 学生姓名, sc.score AS 成绩 FROM t INNER JOIN tc ON t.tno = tc.tno INNER JOIN c ON tc.cno = c.cno INNER JOIN sc ON c.cno = sc.cno INNER JOIN S ON sc.sno = S.sno WHERE t.sn = '石丽'; ``` *说明*:仅返回有学生选课的成绩记录[^2]。 #### 外连接(LEFT OUTER JOIN) ```sql SELECT c.cn AS 课程名, S.sn AS 学生姓名, sc.score AS 成绩 FROM t INNER JOIN tc ON t.tno = tc.tno -- 石丽老师必授课 INNER JOIN c ON tc.cno = c.cno -- 课程必存在 LEFT OUTER JOIN sc ON c.cno = sc.cno LEFT OUTER JOIN S ON sc.sno = S.sno WHERE t.sn = '石丽'; ``` *说明*:包含石丽所有授课课程,未选课的课程显示学生姓名为 `NULL`[^1]。 #### 右外连接(RIGHT OUTER JOIN) ```sql SELECT c.cn AS 课程名, S.sn AS 学生姓名, sc.score AS 成绩 FROM tc INNER JOIN c ON tc.cno = c.cno RIGHT OUTER JOIN t ON tc.tno = t.tno -- 优先保留教师 LEFT OUTER JOIN sc ON c.cno = sc.cno LEFT OUTER JOIN S ON sc.sno = S.sno WHERE t.sn = '石丽'; ``` *说明*:通过右外连接确保石丽老师所有记录被保留[^3]。 --- ### 连接类型对比总结 | 连接类型 | 特点 | 适用场景 | |----------------|----------------------------------------------------------------------|----------------------------------------| | **自然连接** | 自动匹配相同列名,简洁但易出错 | 结构简单且列名一致时 | | **内连接** | 显式指定条件,仅返回匹配记录 | 需精确关联数据时(如统计选课学生) | | **外连接** | 保留左表所有行,右无匹配时补`NULL` | 需包含主体对象全部记录时(如所有学生) | | **右外连接** | 保留右所有行,左表无匹配时补`NULL` | 等价外连接,可互换使用 |
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值