`

内连接,外连接与交叉连接

阅读更多
内连接,外连接与交叉连接

用于测试的表结构及数据,在PostgresQL中测试通过。
Weather表:
     city      | temp_lo | temp_hi | prcp |    date
---------------+---------+---------+------+------------
San Francisco |      46 |      50 | 0.25 | 1994-11-27
Hayward       |      54 |      37 |      | 1944-11-29
San Francisco |      45 |      67 |  0.8 | 2012-02-23

Cities表:
     name      |  loction
---------------+-----------
San Francisco | (-194,53)
beijing       | (123,45)

一,内连接
内连接就和一般的联合查询一样,会返回符合条件的结果集。
内连接分为:
1.等值连接,以‘=’作为连接查询条件----SELECT * FROM weather AS w INNER JOIN cities AS c ON w.city = c.name;
查询结果:
     city      | temp_lo | temp_hi | prcp |    date    |     name      |  loction
---------------+---------+---------+------+------------+-------------- San Francisco |      46 |      50 | 0.25 | 1994-11-27 | San Francisco | (-194,53)
San Francisco |      45 |      67 |  0.8 | 2012-02-23 | San Francisco | (-194,53)
2.不等连接,以‘<>,>,<,>=,<=,!>,!<’作为连接查询条件----SELECT * FROM weather AS w INNER JOIN cities AS c ON w.city <> c.name;

二,外连接
外连接会根据连接类型保留其中一个表,或两个表中不符合查询条件的结果集。
外连接分为:
1.左外连接,(LEFT JOIN或者LEFT OUTER JOIN)会保留左表中不符合条件的结果,没有值的列会用NULL值替代----
SELECT * FROM weather AS w LEFT OUTER JOIN cities AS c ON (w.city = c.name);
查询结果:
"San Francisco";46;50;0.25;"1994-11-27";"San Francisco";"(-194,53)"
"Hayward";54;37; ;"1944-11-29";"";""
"San Francisco";45;67;0.8;"2012-02-23";"San Francisco";"(-194,53)"
2.右外连接,(RIGHT JOIN 或者 RIGHT OUTER JOIN)会保留右表中不符合条件的结果,没有的值会用NULL值替代----SELECT * FROM weather AS w RIGHT JOIN cities AS c ON (w.city = c.name);
"San Francisco";45;67;0.8;"2012-02-23";"San Francisco";"(-194,53)"
"San Francisco";46;50;0.25;"1994-11-27";"San Francisco";"(-194,53)"
"";;;;"";"beijing";"(123,45)"
3.全外连接,(FULL JOIN)显示符合条件的数据行,同时显示左右不符合条件的数据行,相应的左右两边显示NULL----SELECT * FROM weather AS w FULL JOIN cities AS c ON (w.city = c.name);
查询结果:
"";;;;"";"beijing";"(123,45)"
"Hayward";54;37;;"1944-11-29";"";""
"San Francisco";46;50;0.25;"1994-11-27";"San Francisco";"(-194,53)"
"San Francisco";45;67;0.8;"2012-02-23";"San Francisco";"(-194,53)"
三.交叉连接
交叉连接(CROSS JOIN)返回两个表的笛卡尔集
SELECT * FROM weather CROSS JOIN cities;
查询结果:
"San Francisco";46;50;0.25;"1994-11-27";"San Francisco";"(-194,53)"
"San Francisco";46;50;0.25;"1994-11-27";"beijing";"(123,45)"
"Hayward";54;37;;"1944-11-29";"San Francisco";"(-194,53)"
"Hayward";54;37;;"1944-11-29";"beijing";"(123,45)"
"San Francisco";45;67;0.8;"2012-02-23";"San Francisco";"(-194,53)"
"San Francisco";45;67;0.8;"2012-02-23";"beijing";"(123,45)"


分享到:
评论

相关推荐

    SQL 连接 JOIN 例解左连接,右连接,全连接,内连接,交叉连接,自连接

    本文将详细介绍六种主要类型的 JOIN:左连接(LEFT JOIN)、右连接(RIGHT JOIN)、全连接(FULL JOIN)、内连接(INNER JOIN)、交叉连接(CROSS JOIN)以及自连接(SELF JOIN)。通过实例讲解每种连接的特点和应用...

    用数据实例解说SQL内连接、外连接、全连接、交叉连接的运用与区别.doc

    当使用`ON 1 = 1`作为连接条件时,交叉连接会返回两个表的所有可能组合,即每个左表的记录都会与右表的每条记录进行组合。例如: ```sql SELECT O.orderid, O.userid, U.userID, U.sname FROM t_order AS O CROSS ...

    右连接、左连接、全连接、内连接、交叉连接、自连接

    右连接、左连接、全连接、内连接、交叉连接、自连接

    SQL左连接,右连接,内连接,交叉连接,自连接

    根据连接的方式不同,可以分为左连接(LEFT JOIN)、右连接(RIGHT JOIN)、内连接(INNER JOIN)、全连接(FULL JOIN)、交叉连接(CROSS JOIN)以及自连接(SELF JOIN)。每种连接类型都有其特定的应用场景和使用...

    sql内连接和外连接

    ### SQL内连接与外连接详解 #### 一、SQL内连接(INNER JOIN) **定义**: 内连接(INNER JOIN)是一种最常用的连接方式,它仅返回两个数据集合中具有匹配关系的那些行。具体来说,它会从位于两个互相交叉的数据...

    交叉连接、内连接、外连接查询.sql

    交叉连接、内连接、外连接查询.sql

    外连接,内连接 图文详解

    本文将详细解释五种主要的连接类型:外连接(外连接)、内连接(内连接)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)、全连接(FULL JOIN)以及交叉连接(CROSS JOIN)。 1. **内连接(INNER JOIN)**: 内连接...

    SQL的几种连接:内连接、左联接、右连接、全连接、交叉连接

    根据连接的方式和结果,SQL连接可以分为内连接、左连接、右连接、全连接和交叉连接等多种类型。 内连接 内连接是最基本的连接类型,它将两个表格中的数据根据某个条件连接起来。内连接可以分为等值连接、不等值...

    二、MySQL连接查询学习笔记(多表连接查询:内连接,外连接,交叉连接详解)

    MySQL连接查询(多表连接查询:内连接,外连接,交叉连接详解) 6:多表连接查询 笛卡尔乘积:如果连接条件省略或无效则会出现 解决办法:添加上连接条件 连接查询的分类: 1.按年代分类: 1)sql 92标准:仅仅...

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

    右外连接与左外连接相反,返回右表的所有行,即使在左表中没有匹配的行。对于左表中没有匹配的行,结果集中的相应列将是NULL。 ```sql SELECT authors.*, publishers.* FROM authors RIGHT JOIN publishers ...

    数据库内外连接举例

    主要分为内连接、外连接和交叉连接,每种连接都有其特定的应用场景和逻辑。 内连接(INNER JOIN)是最常见的连接类型,它返回两个表中列相等的行。在内连接中,查询条件通常基于两个表之间的共同列,只有当这些列的...

    数据库连接查询相关外连接内连接

    本篇文章将深入探讨数据库连接查询,包括内连接、外连接和交叉连接等,同时结合实例来帮助理解。 首先,了解数据库的基础架构。Oracle数据库由Oracle数据库(数据文件、控制文件、重做日志文件等)和Oracle实例...

    右连接、左连接、全连接、内连接、交叉连接、自连接.pdf

    交叉连接返回两个表的笛卡尔积,即每个左表的记录与右表的每个记录组合。如果没有WHERE子句,结果将是左表的行数乘以右表的行数。这通常会产生大量的记录,除非有明确的筛选条件。 6. **自连接**: 自连接是将同...

    自连接外连接

    交叉连接返回所有可能的行组合,通常称为笛卡尔积。这在实际应用中并不常用,但在某些特定场景下可能会有用处。 - **交叉连接示例**: ```sql SELECT t.*, s.* FROM teacher t CROSS JOIN student s; ``` 通过...

    交叉线连接开发板和主机

    交叉线连接开发板和主机 在嵌入式系统开发中,交叉线连接开发板和主机是一个非常重要的步骤。今天,我们将详细介绍如何使用交叉线连接开发板和主机,以便启动 NFS 根文件系统。 首先,让我们了解一下交叉线连接的...

    MySQL数据库:交叉连接和内连接.pptx

    交叉连接和内连接;表A; SELECT的查询对象由FROM子句指定,各个表用逗号分隔,这样就指定了交叉连接。 其格式为: FROM 表名1 [ [AS] 别名1 ] [ , 表名2[ [AS] 别名2]] … ; 【例】 members表和sell表进行交叉连???。...

    关于数据库外连接和内连接和交叉连接

    外连接  1.left join  示例:SQL语句:select * from student left join course on student.ID=course.ID  左外连接包含left join左表所有行,如果左表中某行在右表没有匹配,则结果中对应行右表的部分全部为...

    SQL的几种连接:内连接、左联接、右连接、全连接、交叉连接.zip

    SQL的几种连接:内连接、左联接、右连接、全连接、交叉连接

    数据库内连接、外连接.ppt.ppt

    连接类型主要有内连接、外连接和交叉连接,这些方法在数据分析、报表生成和数据整合等场景中发挥着关键作用。 首先,我们来详细讨论内连接(INNER JOIN)。内连接是最常用的连接类型,它返回两个表中满足特定连接...

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

    右外连接与左外连接相反,返回右表的所有行,如果在左表中没有匹配的行,则左表的字段将为NULL。因此,当`a.id`不等于`b.parent_id`时,`a.*`列在结果中将是NULL。 4. **全连接(FULL OUTER JOIN)**: 全连接...

Global site tag (gtag.js) - Google Analytics