9. SQL -左连接,右连接,全连接,内连接,连接

SQL LEFT JOIN 关键字

LEFTJOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

LEFT JOIN 关键字语法

SELECT column_name(s)

FROM table_name1

LEFT JOIN table_name2

ON table_name1.column_name=table_name2.column_name

注释:在某些数据库中, LEFT JOIN 称为 LEFTOUTER JOIN。


原始的表 (用在例子中的):

"Persons"表:

左连接(LEFTJOIN)实例

现在,我们希望列出所有的人,以及他们的定购 - 如果有的话。

您可以使用下面的SELECT 语句:

SELECT Persons.LastName, Persons.FirstName,Orders.OrderNo

FROM Persons

LEFT JOIN Orders

ON Persons.Id_P=Orders.Id_P

ORDER BY Persons.LastName

LEFTJOIN 关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行。

关键字

RIGHTJOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。

RIGHT JOIN 关键字语法

SELECT column_name(s)

FROM table_name1

RIGHT JOIN table_name2

ON table_name1.column_name=table_name2.column_name

注释:在某些数据库中, RIGHT JOIN 称为 RIGHTOUTER JOIN。

原始的表 (用在例子中的):

"Persons"表:

右连接(RIGHTJOIN)实例

现在,我们希望列出所有的定单,以及定购它们的人 - 如果有的话。

您可以使用下面的SELECT 语句:

SELECT Persons.LastName, Persons.FirstName,Orders.OrderNo

FROM Persons

RIGHT JOIN Orders

ON Persons.Id_P=Orders.Id_P

ORDER BY Persons.LastName

结果集:

关键字

只要其中某个表存在匹配,FULLJOIN 关键字就会返回行。

FULL JOIN 关键字语法

SELECT column_name(s)

FROM table_name1

FULL JOIN table_name2

ON table_name1.column_name=table_name2.column_name

注释:在某些数据库中, FULL JOIN 称为 FULLOUTER JOIN。

原始的表 (用在例子中的):

"Persons"表:

全连接(FULLJOIN)实例

现在,我们希望列出所有的人,以及他们的定单,以及所有的定单,以及定购它们的人。

您可以使用下面的SELECT 语句:

SELECT Persons.LastName, Persons.FirstName,Orders.OrderNo

FROM Persons

FULL JOIN Orders

ON Persons.Id_P=Orders.Id_P

ORDER BY Persons.LastName

关键字

在表中存在至少一个匹配时,INNERJOIN 关键字返回行。

INNER JOIN 关键字语法

SELECT column_name(s)

FROM table_name1

INNER JOIN table_name2

ON table_name1.column_name=table_name2.column_name

注释:INNERJOIN 与 JOIN 是相同的。

原始的表 (用在例子中的):

"Persons"表:

内连接(INNERJOIN)实例

现在,我们希望列出所有人的定购。

您可以使用下面的SELECT 语句:

SELECT Persons.LastName, Persons.FirstName,Orders.OrderNo

FROM Persons

INNER JOIN Orders

ON Persons.Id_P=Orders.Id_P

ORDER BY Persons.LastName

时间: 2024-10-26 10:18:55

9. SQL -左连接,右连接,全连接,内连接,连接的相关文章

解析:内联,左外联,右外联,全连接,交叉连接的区别

连接分为:内连接.外连接.交叉连接 一.内连接--最常用 定义:仅将两个表中满足连接条件的行组合起来作为结果集. 在内连接中,只有在两个表中匹配的行才能在结果集中出现 关键词:INNER JOIN 格式:SELECT 列名表 FROM 表名1 [INNER] JOIN 表名2 ON或WHERE 条件表达式 说明: (1)列名表中的列名可以出自后面的两个表,但如果两个表中有同名列,应在列名前标明出处,格式为:表名.列名 (2)若连接的两个表名字太长,可以为它们起个别名. 格式为:表名 AS 别名 

sql 内连接 外连接 左连接 右连接

1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接.     内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和courses表中学生标识号相同的所有行.       2.外联接.外联接可以是左向外联接.右向外联接或完整外部联接.     在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:     1)LEFT  JOIN或LEFT OUTER JOIN     左向外联接的结果集包括  LEF

SQL左连接、右连接和内连接的简单示例

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录: right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录: inner join(等值连接) 只返回两个表中联结字段相等的行:举例如下: -------------------------------------------- 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录

Oracle表与表之间的连接方式(内连接:inner join 、外连接 全连接: full outer join、左连接:left outer join 、右连接:right outer join、自然连接:natural join)

1 --内连接:INNER JOIN 它表示返回两个表或记录集连接字段的匹配记录,表示两个表中相互包含的部分 2 select * from student inner join sc on student.sno=sc.sno; 3 --外连接(全连接):包含左.右两个表的全部行,不管另外一边的表中是否存在与它们匹配的行.不符合条件的,以空值代替. 4 --全连接:表示两个表组合在一起,左右不相匹配时使用空值替换 5 select * from student full outer join

SQL 左外连接,右外连接,全连接,内连接

连接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定连接条件.WHERE和HAVING子句也可以包含搜索条件,以进一步筛选连接条件所选的行.               连接可分为以下几类:                 内连接.(典型的连接运算,使用像   =   或   <>   之类的比较运算符).包括相等连接和自然连接.            内连接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索   students   和   courses  

&lt;转&gt;SQL 左外连接,右外连接,全连接,内连接

本文节选自:https://www.cnblogs.com/youzhangjin/archive/2009/05/22/1486982.html 连接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定连接条件.WHERE和HAVING子句也可以包含搜索条件,以进一步筛选连接条件所选的行.              连接可分为以下几类:                 内连接.(典型的连接运算,使用像   =   或   <>   之类的比较运算符).包括相等连接和自然连接.  

mysql 内连接 左连接 右连接 外连接

mysql> desc student;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| ID | int(11) | NO | PRI | 0 | || NAME | varchar(16) | YES | | NULL | || A

左连接,右连接,内连接,外连接, join, left join, right join ,mysql ,oracle

2016-6-12 22:35:51 工作用了一年多的oracle,最近在学mysql, 仔细想想 各种连接,感觉这些概念还是蛮烦人的! 最近整理了一下,分享一下自己的理解,有些东西是借鉴网上并自己吸收了的. 1.不管是什么连接,oracle和mysql的原理是一模一样的,只是有些写法不一样而已.说到写法,这里提一下, select * from A, B where a.filed1=b.filed2; --这是第1种写法, 内连接,这样写,很方便, oracle和mysql通用 select

linq to entity 左联接 右连接 以及内连接写法的区别(转)

linq to entity 左连接 右连接 以及内连接写法的区别  还有就是用lambda表达式怎么写,那个效法效率高些? [解决办法]左连右连还是内连这个其实你不需要关心.只需要根据实体的映射关系写查询,框架会自动帮你生成的.至于linq查询语法与扩展方法的效率,应该是一样的,比如: C# code var users=(from u in db.Users where u.UserRoleId==1 select u) .ToList(); var users2=db.Users.Wher

mysql 左连接 右连接 内链接

一般所说的左连接,右连接是指左外连接,右外连接.做个简单的测试你看吧.先说左外连接和右外连接:[[email protected]#16-12月-11] SQL>select * from t1; ID NAME---------- --------------------1 aaa2 bbb [[email protected]#16-12月-11] SQL>select * from t2; ID AGE---------- ----------1 203 30左外连接:[[email p