内连接,外连接与交叉连接
用于测试的表结构及数据,在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)"
分享到:
相关推荐
本文将详细介绍六种主要类型的 JOIN:左连接(LEFT JOIN)、右连接(RIGHT JOIN)、全连接(FULL JOIN)、内连接(INNER JOIN)、交叉连接(CROSS JOIN)以及自连接(SELF JOIN)。通过实例讲解每种连接的特点和应用...
当使用`ON 1 = 1`作为连接条件时,交叉连接会返回两个表的所有可能组合,即每个左表的记录都会与右表的每条记录进行组合。例如: ```sql SELECT O.orderid, O.userid, U.userID, U.sname FROM t_order AS O CROSS ...
右连接、左连接、全连接、内连接、交叉连接、自连接
根据连接的方式不同,可以分为左连接(LEFT JOIN)、右连接(RIGHT JOIN)、内连接(INNER JOIN)、全连接(FULL JOIN)、交叉连接(CROSS JOIN)以及自连接(SELF JOIN)。每种连接类型都有其特定的应用场景和使用...
### SQL内连接与外连接详解 #### 一、SQL内连接(INNER JOIN) **定义**: 内连接(INNER JOIN)是一种最常用的连接方式,它仅返回两个数据集合中具有匹配关系的那些行。具体来说,它会从位于两个互相交叉的数据...
交叉连接、内连接、外连接查询.sql
本文将详细解释五种主要的连接类型:外连接(外连接)、内连接(内连接)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)、全连接(FULL JOIN)以及交叉连接(CROSS JOIN)。 1. **内连接(INNER JOIN)**: 内连接...
根据连接的方式和结果,SQL连接可以分为内连接、左连接、右连接、全连接和交叉连接等多种类型。 内连接 内连接是最基本的连接类型,它将两个表格中的数据根据某个条件连接起来。内连接可以分为等值连接、不等值...
MySQL连接查询(多表连接查询:内连接,外连接,交叉连接详解) 6:多表连接查询 笛卡尔乘积:如果连接条件省略或无效则会出现 解决办法:添加上连接条件 连接查询的分类: 1.按年代分类: 1)sql 92标准:仅仅...
右外连接与左外连接相反,返回右表的所有行,即使在左表中没有匹配的行。对于左表中没有匹配的行,结果集中的相应列将是NULL。 ```sql SELECT authors.*, publishers.* FROM authors RIGHT JOIN publishers ...
主要分为内连接、外连接和交叉连接,每种连接都有其特定的应用场景和逻辑。 内连接(INNER JOIN)是最常见的连接类型,它返回两个表中列相等的行。在内连接中,查询条件通常基于两个表之间的共同列,只有当这些列的...
本篇文章将深入探讨数据库连接查询,包括内连接、外连接和交叉连接等,同时结合实例来帮助理解。 首先,了解数据库的基础架构。Oracle数据库由Oracle数据库(数据文件、控制文件、重做日志文件等)和Oracle实例...
交叉连接返回两个表的笛卡尔积,即每个左表的记录与右表的每个记录组合。如果没有WHERE子句,结果将是左表的行数乘以右表的行数。这通常会产生大量的记录,除非有明确的筛选条件。 6. **自连接**: 自连接是将同...
交叉连接返回所有可能的行组合,通常称为笛卡尔积。这在实际应用中并不常用,但在某些特定场景下可能会有用处。 - **交叉连接示例**: ```sql SELECT t.*, s.* FROM teacher t CROSS JOIN student s; ``` 通过...
交叉线连接开发板和主机 在嵌入式系统开发中,交叉线连接开发板和主机是一个非常重要的步骤。今天,我们将详细介绍如何使用交叉线连接开发板和主机,以便启动 NFS 根文件系统。 首先,让我们了解一下交叉线连接的...
交叉连接和内连接;表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的几种连接:内连接、左联接、右连接、全连接、交叉连接
连接类型主要有内连接、外连接和交叉连接,这些方法在数据分析、报表生成和数据整合等场景中发挥着关键作用。 首先,我们来详细讨论内连接(INNER JOIN)。内连接是最常用的连接类型,它返回两个表中满足特定连接...
右外连接与左外连接相反,返回右表的所有行,如果在左表中没有匹配的行,则左表的字段将为NULL。因此,当`a.id`不等于`b.parent_id`时,`a.*`列在结果中将是NULL。 4. **全连接(FULL OUTER JOIN)**: 全连接...