SQL的四种连接查询

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

        今天在做招标系统的时候,想通过招标编号把投标商、评分项、评标专家几个表中相关联的字段查询出来。一般以往的做法是把这些字段放到一张视图里,但现在我只是想看看查询出来的结果是否与测试操作相符,没必要建一张视图,于是就想到了今天我们要说的这几种连接,下面以SQL中的一个小Demo为例进行说明:

        SQL数据库中有两张表,一张人员(T_Person)表、一张卡(T_Card)表,人基本上都那么几张卡,像银行卡、饭卡、水卡、电费卡……

(T_Person)

(T_Card)

内连接

1.内连接(inner join 或 join)

        内连接是等值连接,它使用“=、>、<、<>”等运算符根据每个表共有的列的值匹配两个表中的行

查询语句:

    select * from T_Person inner join T_Card on T_Person.CardId = T_Card.CardId
查询结果:


外连接

2.左连接(left join 或 left outer join)

        左连接又称左向外连接,查询的结果集包括SQL语句中左表的所有行,右表中匹配的行。如果左表的某行在右表中没有匹配行,则用空值表示

查询语句:

    select * from T_Person left join T_Card on T_Person.CardId = T_Card.CardId
查询结果:


3.右连接(right join 或 right outer join)

        右连接也成右向外连接,查询的结果集包括SQL语句中右表的所有行,左表中匹配的行。如果右表的某行在左表中没有匹配的行,则用空值表示

查询语句:

     select * from T_Person right join T_Card on T_Person.CardId = T_Card.CardId
查询结果:


4.完全外连接(full join 或 full outer join)

        完全外连接,查询的结果集包括SQL语句中左表和右表的所有行。如果某行在另一个表中没有匹配行时,则用空值表示。

查询语句:

     select * from T_Person full join T_Card on T_Person.CardId = T_Card.CardId

查询结果:


总结:

        SQL中连接查询分内、外连接,外连接分左连接、右连接和完全外连接,它们的功能与视图差不多。其中左右连接查询是相对应的,即把连接类型和左表、右表互换位置就可得到相同的结果集。



SQL数据查询——连接查询 等值连接、内连接、外连接、自然连接SQL JOINS等主要操作以及SQL92与SQL99语法比较、Oracle与MySQL语法比较。 阅读详情

相关推荐

SQL连接查询

因为不同表之间的数据具有不同的用途和字段,连接查询可以将我们需要用到的两个表的不同字段进行关联,从而找到我们有用的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,然后通过连接进行查询连接操作除了可以是两表连接,一个表于其自身连接外,还可以是两个以上的表进行连接,后者通常 称为多表连接。对于不同的DBMS,支持的集合运算不同,例如MySQL只支持并运算,但是集合运算大都可以使用关系运算符进行替换或者使用嵌套查询,因此不必担心集合运算连接查询

m0_62172219的博客 6070

SQL的7种连接查询

SQL的7种连接查询

weixin_40379745的博客 8015

【数据库的连接查询

连接查询SQL中常见的一种查询语句,它可以将两个或多个表中的数据关联在一起并返回一个结果集。连接查询分为内连接、外连接和交叉连接。内连接:内连接指的是连接两个表中共有的数据,即在两个表中都存在的数据才能被查询出来。外连接:外连接指的是连接两个表中不完全重叠的数据,即在一个表中存在的数据在另一个表中不存在,或者在两个表中都存在但是某些字段的值不一样的数据。交叉连接:交叉连接又称笛卡尔积,它返回两个表的所有可能组合。这种连接方式使用较少,因为它通常会返回过多的结果,占用过多的计算资源。

weixin_44794485的博客 4485

查询数据(数据库)——连接查询

1.连接查询和单表查询的区别和联系 2. 为FROM子句后的表起别名 3. 使用JOIN…ON关键字

改改的博客 2055

sql四种连接查询的区别

sql中的连接查询有inner join(内连接)、left join(左连接)、right join(右连接)、full join(全连接四种方式,它们之间其实并没有太大区别,仅仅是查询出来的结果有所不同。 例如我们有两张表: Orders表通过外键Id_P和Persons表进行关联。 1.inner join,在两张表进行连接查询时,只保留两张表中完全匹配的结果集。 我们使用inner j...

3186

SQL四种连接查询

SQL四种连接查询 ----内连接 inner join或者join 外链接 1、左连接 left join 或者 left outer join 2、右连接 right join 或者 right outer join 3、完全外链接 full join 或者full outer join 创建两个表; creat database testjoin; person 表 id,name,cardId create table person(id int,name varchar(20),cardI

weixin_43393776的博客 322

小结:SQL四种连接查询

四种连接查询分别是 内连接(inner join或join) 左外连接(left outer join或left join) 右外连接(right outer join或right join) 完全外连接(full outer join或full join) 注:左外连接,右外连接,完全外连接都属于外连接 举例:创建两个表(person表和card表) create table person( id int, name varchar(20), cardId int ); creat

wennianzhu的博客 853

数据库-SQL四种连接查询

title: 数据库-SQL四种连接查询 date: 2021-11-21 20:42:28 tags: 数据库-SQL四种连接查询连接 inner join 或者 join 把两个表的有关系的字段通过某一字段相等的方式查询出来 外连接 1.左连接 left join 或者 left outer join 2.右连接 right join 或者 right outer join 3.完全外连接 full join 或者 full outer join 创建两个表: person表 id,nam.

weixin_44999716的博客 1754

5,sql四种连接查询

连接 inner join或者join 外连接 1,左连接 left join或者left outer join 2,右连接 right join或者right outer join 3,完全外连接 full join或者full outer join 创建数据库: create database testjoin; 创建两个表: person表:id,name,cardId create table person( id int, name varchar(20), ca..

qq_47915340的博客 230

黑马程序员——SQL四种连接查询及实例

SQL四种连接查询:内连接查询、左连接查询、右连接查询、外连接查询

ajin2015的博客 751

SQL四种连接查询的区别

一、左连接查询 LEFT JOIN 关键字:leftjoin on 语句:SELECT * FROM a_table a left join b_table b ON a.a_id = b.b_id 说明:left join 是left outer join的简写,它的全称是左外连接,是外连接中的一种,简单来说就是将左表的记录全查询出,右表只查询出和左表关联上的记录,如右表未关联上的数据置为空 案例解释:在boy表和girl 表中左连接查询,boy表和girl 表如下: 采用左连接查询方式: SE

weixin_44567099的博客 3635

sql常见四种连接查询

连接查询SQL查询的核心,连接查询连接类型选择依据实际需求。如果选择不当,非但不能提高查询效率,反而会带来一些逻辑错误或者性能低下。下面总结一下两表连接查询选择方式的依据:1、 查两表关联列相等的数据用内连接。2、 Col_L是Col_R的子集时用右外连接。3、 Col_R是Col_L的子集时用左外连接。4、 Col_R和Col_L彼此有交集但彼此互不为子集时候用全外。5、 求差操作的时候用联合查询。多个表查询的时候,这些不同的连接类型可以写到一块。

伤心的辣条 1717
上一篇: 【年总结三】告别大学,继续前行
下一篇: 【Java笔记一】Filter过滤器
xjCherie
博客等级 码龄14年 405粉丝 129原创
评论 26
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值