题解·简单 | #找到每个人的任务#
找到每个人的任务
https://www.nowcoder.com/practice/9dd9182d029a4f1d8c1324b63fc719c9
select person.id,person.name,task.content from person left join task on person.id = task.person_id order by person.id
首先呢,这道题目一上来两个表,我初学肯定还是不会的,好
借鉴一下别人的答案,第一句呢,就是全部的输出结果
第二句呢,从person表左连接这个task表,通过这个桥梁person.id = task.person.id
最后呢,我们就是直接排个顺序,通过这个id的顺序我们进行一个输出
对了,注意说到左连接和右连接
左连接和右连接是数据库中常见的两种连接方式,具体如下:
左连接,也称左外连接,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。
右连接,也称右外连接,根据ON后给出的两表的条件将两表连接起来。结果会将右表所有的查询信息列出,而左表只列出ON后条件与右表满足的部分。
在SQL中,左连接(LEFT JOIN)和右连接(RIGHT JOIN)都是连接两个或多个表的操作,但它们在处理结果集时的侧重点是不同的。为了区分哪个是左表,哪个是右表,我们首先要理解这两种连接的基本概念。
- 左连接(LEFT JOIN):左连接返回左表中的所有记录,以及与右表匹配的记录。如果左表的某条记录在右表中没有匹配的记录,那么结果集中对应的右表的部分将包含NULL值。在SQL查询中,左连接通常使用“LEFT JOIN table_name ON table1.column_name = table2.column_name”的语法。其中,table_name是你要连接的表的名称,table1和table2是你想连接的两个表的别名。
- 右连接(RIGHT JOIN):右连接返回右表中的所有记录,以及与左表匹配的记录。如果右表的某条记录在左表中没有匹配的记录,那么结果集中对应的左表的部分将包含NULL值。在SQL查询中,右连接的语法与左连接类似,只是表的顺序是相反的。例如,“RIGHT JOIN table_name ON table1.column_name = table2.column_name”。
如何区分左表和右表:
- 在实际的SQL查询中,当你看到“LEFT JOIN”或“RIGHT JOIN”时,通常会有一个明确的表名或别名出现在“ON”子句之前。这个出现在“ON”之前的表就是左表或右表,取决于你使用的是左连接还是右连接。
- 在结果集中,你可以根据实际的查询和数据来推断哪个是左表,哪个是右表。如果一个表的某些记录在另一个表中没有匹配的记录,那么这些记录对应的字段将包含NULL值。通常,左连接的结果集中,左表的字段会有更多的NULL值;而在右连接的结果集中,右表的字段会有更多的NULL值。
但最终,为了确定哪个是左表、哪个是右表,最好还是查看实际的SQL查询语句。
