现有A和B两个表
表A记录如下:
aID aNum
1 a20050111
2 a20050112
3 a20050113
4 a20050114
5 a20050115
表B记录如下:
bID bName
1 2006032401
2 2006032402
3 2006032403
4 2006032404
8 2006032408
1.left join(左联接)
SELECT * FROM a LEFT JOIN b ON a.aID =b.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
5 a20050115 NULL NULL
(所影响的行数为 5 行)
结果说明:
left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID). B表记录不足的地方均为NULL.
2.right join(右联接)
SELECT * FROM a RIGHT JOING b ON a.aID = b.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
NULL NULL 8 2006032408
(所影响的行数为 5 行)
结果说明:
仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.
3.inner join(相等联接或内联接)
SELECT * FROM a INNER JOIN b ON a.aID =b.bID
等同于以下SQL句:
SELECT * FROM a,b WHERE a.aID = b.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
结果说明:
很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.
分享到:
相关推荐
在本实例中,我们将深入探讨如何使用ThinkPHP的原生`query`方法实现左连接(LEFT JOIN)的关联查询。 首先,我们要理解什么是左连接。在SQL中,左连接是一种连接两个表的方式,返回左表的所有记录,即使右表中没有...
下面我们将详细介绍几种常见的JOIN类型:内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)以及全连接(FULL JOIN),并通过具体的例子进行说明。 #### 一、内连接(INNER JOIN) 内连接是最常用...
JOIN操作主要有四种类型:LEFT JOIN、RIGHT JOIN、INNER JOIN和FULL JOIN,每种都有其特定的用途。 1. LEFT JOIN(左连接): LEFT JOIN返回左表(即在JOIN语句前的表)的所有记录,即使在右表中没有匹配的记录。...
数据库连接是数据库操作中的一种重要方法,用于合并来自多个表的数据。主要分为内连接、外连接和交叉连接,每种连接都有其特定的应用场景和逻辑。 内连接(INNER JOIN)是最常见的连接类型,它返回两个表中列相等的...
在SQL查询中,`LEFT JOIN` 是一种连接两个或多个表的方法,以便从左表(通常是主表)中返回所有行,即使在右表中没有匹配的行。在这个过程中,`ON` 和 `WHERE` 子句都是用来指定条件的,但它们在查询逻辑中的作用...
你可以通过组合不同的JOIN类型(如INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN)来满足特定的数据聚合需求。 LabVIEW数据库操作的基本步骤包括: 1. **建立连接**:使用"Connect to Database.vi"来建立到...
7. 描述JOIN操作的用途,并举例说明INNER JOIN、LEFT JOIN、RIGHT JOIN的区别。 8. 如何在SQL中创建、修改和删除表? 9. 什么是索引?创建索引的优点和可能的缺点是什么? 10. SQL中如何实现分组和排序(GROUP BY和...
本文将深入探讨JOIN的基本使用方法以及字段字符集编码如何影响性能。 JOIN语句的基础在于它能根据两个表中指定字段的关联来提取数据。在MySQL中,JOIN通常与ON关键字一起使用,其基本语法如下: ```sql FROM table...
常见的JOIN类型有INNER JOIN(只返回匹配的行),LEFT JOIN(返回左表所有行及右表匹配的行),RIGHT JOIN(返回右表所有行及左表匹配的行),FULL JOIN(返回两个表的所有行,即使某一边没有匹配项)。 7. **UNION...
3. **GroupJoin**:类似于LEFT JOIN,它将一个集合中的元素与另一个集合中匹配的元素分组,即使在第二个集合中没有匹配项,也会返回第一个集合的所有元素。 举例来说,在一对多关系中,例如Customers和Orders,可以...
如果在`Products`表中有一些产品没有对应的供应商记录,使用Left Outer Join可以确保所有产品记录都包含在结果中,即使供应商信息为空。 掌握这些SQL Server 2000的技巧,无论是更新操作、存储过程的编写,还是...
根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是SQL中的多表查询技术,具体涉及到了左连接(Left Join)、右连接(Right Join)、内连接(Inner Join)以及全连接(Full Outer Join)。...
Oracle数据库的SQL优化是数据库管理员和开发人员关注的重要领域,特别是在处理复杂的表...通过调整连接顺序、选择合适的连接方法和单表访问策略,以及明智地使用内外连接,我们可以显著提升Oracle数据库的SQL执行性能。
1. 数据表连接(JOIN):这是最基础的表合并方式,包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN)。内连接返回两个表中匹配的记录,左连接返回左表的所有记录及与之...
- **外连接**(LEFT JOIN, RIGHT JOIN)返回所有左表或右表的行,即使没有匹配的行。 - **交叉连接**(CROSS JOIN)返回两个表的笛卡尔积,即所有可能的组合。 - **联合查询**(UNION)用于合并多个SELECT语句的...
- **外连接**:包括左连接(`LEFT JOIN`)、右连接(`RIGHT JOIN`)和全连接(`FULL JOIN`) - **交叉连接**:`SELECT ... FROM table1 CROSS JOIN table2;` - **联合查询**:将多个查询的结果合并成一个结果集,...
左外连接返回左表(在`LEFT JOIN`或`LEFT OUTER JOIN`之后指定的表)的所有行,即使在右表中没有匹配的行。对于右表中没有匹配的行,结果集中相应列的值将为NULL。例如,如果在`authors`和`publishers`表中,`LEFT ...
- **JOIN操作优化**:INNER JOIN、LEFT JOIN、RIGHT JOIN等,理解不同类型的JOIN对性能的影响。 - **子查询与联接的区别**:在特定场景下,子查询和联接的性能差异。 3. **事务与并发控制**: - **ACID属性**:...
有内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN)等类型。 六、子查询 子查询可以在SELECT、FROM或WHERE子句中嵌套,用于执行更复杂的查询: ```sql SELECT column FROM table ...
- 请解释INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN的区别。 - 在什么情况下会使用自连接,给出一个实际的例子。 - 如何优化JOIN操作以提高查询性能? 4. **索引** - 索引的作用是什么?它们有哪些类型,如...