`
weigang.gao
  • 浏览: 488797 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

左(外)连接

 
阅读更多
--学生与书的关系,每本书只能属于一个学生
create table tb_student(
student_id number,--学号
student_name varchar2(30),
student_sex char(1),--性别 F/M
student_age number,--年龄
student_birthday date,--学生出生日期
constraint pk_student primary key(student_id)
);
insert into tb_student(student_id, student_name, student_sex, student_age, student_birthday)
  values (seq_student.nextval, '阿Q', 'F', '22', to_date('1991-01-09', 'yyyy-MM-dd') );
insert into tb_student(student_id, student_name, student_sex, student_age, student_birthday) 
  values (seq_student.nextval, '高红成', 'F', '26', to_date('1971-02-12', 'yyyy-MM-dd') );
insert into tb_student(student_id, student_name, student_sex, student_age, student_birthday) 
 values (seq_student.nextval, '李艳', 'F','25', to_date('1981-05-09', 'yyyy-MM-dd') );
insert into tb_student(student_id, student_name, student_sex, student_age, student_birthday) 
 values (seq_student.nextval, '高雄', 'M','21', to_date('1981-05-09', 'yyyy-MM-dd') );
insert into tb_student(student_id, student_name, student_sex, student_age, student_birthday) 
 values (seq_student.nextval, '彭传志', 'M','22', to_date('1981-05-09', 'yyyy-MM-dd') );
 
--书
create table tb_book(
book_id number,--书号
book_name varchar2(32),--书名
student_id number,
constraint fk_book_student foreign key(student_id) references tb_student(student_id)
);
insert into tb_book values(seq_book.nextval, '语文', '6');
insert into tb_book values(seq_book.nextval, '语文', '7');
insert into tb_book values(seq_book.nextval, '语文', '8');
insert into tb_book values(seq_book.nextval, '语文', '9');
insert into tb_book values(seq_book.nextval, '语文', '10');

insert into tb_book values(seq_book.nextval, '数学', '6');
insert into tb_book values(seq_book.nextval, '数学', '7');
insert into tb_book values(seq_book.nextval, '数学', '8');
insert into tb_book values(seq_book.nextval, '数学', '9');
insert into tb_book values(seq_book.nextval, '数学', '10');

insert into tb_book values(seq_book.nextval, 'English', '6');
insert into tb_book values(seq_book.nextval, 'English', '7');
insert into tb_book values(seq_book.nextval, 'English', '8');
insert into tb_book values(seq_book.nextval, 'English', '9');
insert into tb_book values(seq_book.nextval, 'English', '10');
--左连接,把tb_book作为主表
--注意结果集分布, t只与b相关,t与s毫无关联。t表中没有匹配的记录行,所有字段都为null
select * from tb_book b left join tb_student s on b.student_id = s.student_id
                        left join tb_student t on b.student_id = t.student_id and 
                                                  t.student_id in ('6', '7', '8');

 结果:



 

  • 大小: 34.4 KB
分享到:
评论

相关推荐

    SQL 左外连接,右外连接,全连接,内连接 四种连接的差异.doc

    SQL 连接的四种类型:左外连接、右外连接、全连接、内连接 在 SQL 中,连接(JOIN)是一种非常重要的概念,它允许我们从多个表中检索数据。连接可以分为四种类型:左外连接、右外连接、全连接和内连接。每种连接都...

    SQL_左外连接_右外连接_全连接_内连接

    左外连接返回左表(在`LEFT JOIN`或`LEFT OUTER JOIN`之后指定的表)的所有行,即使在右表中没有匹配的行。对于右表中没有匹配的行,结果集中相应列的值将为NULL。例如,如果在`authors`和`publishers`表中,`LEFT ...

    左外连接右外连接,内连接区别

    本文将深入探讨三种主要的连接类型:左外连接、右外连接和内连接,并通过具体的例子来阐述它们之间的区别。 首先,让我们从内连接(INNER JOIN)开始。内连接返回的是两个表中满足特定连接条件的记录。在示例中,`...

    通用的分页存储过程,内置的函数、内连接、左外连接

    另一方面,"左外连接"(LEFT JOIN)则会返回所有左表(通常是主表)的记录,即使在右表中没有匹配的记录。如果右表有匹配,结果将包含右表的记录;如果没有,相应的字段将填充为NULL。这在处理不完全一对多或多对多...

    sql左外连接、右外连接、内连接、全外连接的区别

    根据连接的方向和目的,可以分为几种不同的类型:左外连接(LEFT JOIN)、右外连接(RIGHT JOIN)、内连接(INNER JOIN)以及全外连接(FULL JOIN)。下面将详细介绍这四种连接类型,并通过示例来解释它们之间的区别...

    Hibernate 内连接和左外连接

    本文主要讨论的是内连接(INNER JOIN)和左外连接(LEFT OUTER JOIN)两种类型,并结合实际例子进行详细讲解。 内连接(INNER JOIN)返回两个表中匹配的行。这意味着只有当第一个表的某行与第二个表的某行有匹配的...

    C#使用左外连接查询数据 

    左外连接(Left Outer Join)是SQL查询中的一个关键概念,用于合并两个或更多表的数据,保留左侧表格的所有记录,即使右侧表格没有匹配的记录。本文将深入探讨如何在C#中使用ADO.NET或Entity Framework等库来执行左...

    SQL左外连接,右外连接,全连接,内连接四种连接的差异[参照].pdf

    主要的连接类型有内连接、左外连接、右外连接和全连接。理解这些连接方式的区别有助于设计更有效的查询,以满足不同的数据需求。 1. **内连接(Inner Join)**: 内连接只返回那些在两个表中都存在匹配的行。...

    SQL左外连接,右外连接,全连接,内连接4种连接的区别[归类].pdf

    以下是四种主要的连接类型:内连接、左外连接、右外连接和全连接。 1. **内连接(INNER JOIN)**: 内连接是基于两个表之间的匹配列的值进行的连接,它只返回两个表中存在匹配的行。例如,在`authors`和`...

    数据库,SQLServer2016,左外连接,下载无需修改直接可用

    在SQL Server 2016中,掌握不同的连接类型,特别是左外连接(Left Outer Join),对于高效的数据查询和分析至关重要。左外连接是一种外部连接类型,它在查询时保留了左表(通常是主查询或驱动表)的所有记录,并将...

    SQL 四种连接-左外连接、右外连接、内连接、全连接详解

    SQL的四种连接方式是数据库查询中常用的操作,它们分别是内连接(Inner Join)、左外连接(Left Outer Join)、右外连接(Right Outer Join)和全连接(Full Outer Join)。每种连接方式都有其特定的应用场景和返回...

    SQL左外连接,右外连接,全连接,内连接四种连接的差异借鉴.pdf

    SQL左外连接,右外连接,全连接,内连接四种连接的差异借鉴.pdf

    Oracle数据库左外连接

    Oracle连接有多中,我是在平常开发项目过程中用到的Oracle左连接进行了简单的阐述。

    PostgreSQL 10 基础课程第五章 高级知识左右外连接详解

    PostgreSQL 10 基础课程第五章 高级知识左右外连接详解

    SQL之左连接、右连接和全连接.doc

    左连接也称为左外连接,用于从左侧表中检索记录,返回左侧表中的所有记录,并将右侧表中的匹配记录附加到左侧表中。如果右侧表中没有匹配记录,将返回空值。左连接的基本语法为: SELECT * FROM 左侧表 LEFT JOIN ...

    数据库:左连接、右连接、全连接

    外连接(OUTER JOIN)是一种连接操作,用于查询多个表中的数据,但不 sadece 返回符合连接条件的数据行,而是返回左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中的所有数据行。外连接可以分为三种...

    sql内连接和外连接

    外连接分为三种类型:左外连接(LEFT OUTER JOIN)、右外连接(RIGHT OUTER JOIN)和全外连接(FULL OUTER JOIN)。 **语法**: - **左外连接**: ```sql SELECT column_name(s) FROM table1 LEFT OUTER JOIN ...

    自连接外连接

    - **右外连接(Right Outer Join)**:与左外连接相反,优先显示右侧表的所有记录,左侧表中未找到匹配项时显示为`NULL`。 - 示例代码: ```sql SELECT t.*, s.* FROM teacher t RIGHT JOIN student s ON t.id ...

    数据库表连接(内外、左右连接).docx

    - 右外连接(RIGHT OUTER JOIN 或 RIGHT JOIN):与左外连接相反,返回右表的所有行,左表中没有匹配的行同样填充NULL。 - 全外连接(FULL OUTER JOIN 或 FULL JOIN):返回两个表的所有行,无论是否存在匹配。如果...

Global site tag (gtag.js) - Google Analytics