当前位置:首页>>开发编程>>数据库>>新闻内容  
SQL语句:LEFT JOIN和RIGHT JOIN运算
作者: 发布时间:2007-10-31 16:43:48 | 【字体:

LEFT JOIN 和 RIGHT JOIN 运算

用于 FROM 子句时,把源表记录组合起来。

语法

FROM表1 [ LEFT | RIGHT ] JOIN表2
    ON 表1.字段1 compopr 表2. 字段2

LEFT JOIN 及 RIGHT JOIN 运算可分为以下几个部分:

部分 说明

table1, table2 记录被组合的表的名称。
field1, field2 被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称。
compopr 任何的关系比较运算子:"=," "<," ">," "<=," ">=," 或 "<>."

说明

用 LEFT JOIN 运算 创建左边外部联接.左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。

用RIGHT JOIN 运算 创建 右边外部联接.右边外部联接将包含了从第二个(右边)开始的两个表中的全部记录,即使在第一个(左边)表中并没有匹配值的记录。

例如,可以使用 LEFT JOIN 与部门(左边)及员工(右边)表来选择所有的部门,包含了没有分配到员工的部门。可以使用 RIGHT JOIN 选择所有的员工,包含了没有分配到部门的员工。

下列示例显示如何在类标识符字段中联接类表及产品表。查询将会列出所有种类的列表,包含那些没有产品在其中的种类:

SELECT CategoryName,

ProductName

FROM Categories LEFT JOIN Products

ON Categories.CategoryID = Products.CategoryID;

在本例中,CategoryID 是联接的字段,但由于它不包含在 SELECT 语句中,因此,也不包含在查询结果中。要包含联接的字段,请在 SELECT 语句中输入字段名 — 在这个示例中为 Categories.CategoryID。

注意

欲创建只包含联接字段中数据相同的记录的查询,请用 INNER JOIN 运算。

-在 INNER JOIN 之中可以写一个嵌套的 LEFT JOIN 或一个 RIGHT JOIN,但是在一个 LEFT JOIN 或一-个 RIGHT JOIN 之中不能写嵌套的 INNER JOIN。请参阅 INNER JOIN 主题中有关使用嵌套的讨论,从-其中可获知如何在其它联接中编写嵌套联接的信息。
-可以链接多个 ON 子句。
-若试图联接包含 Memo或 OLE Object数据的字段,会导致错误。


文章来源:
·SQL Server中各种语句的完整语法
·如何压缩SQL Server 2005指定数据库文件和日志的大小?
·SQL Server 2005压缩数据库和日志文件的方法
·教你安全配置SQL Server 2000数据库
·如何在Windows XP上安装SQL Server 2000
·SQL Server数据库从2000还原为2005的步骤
·SQL Server数据库还原的SQL语句及操作
·SQL Server 2000导入SQL Server 2005生成脚本的问题
·在SQL Server 2005下还原数据库的一个错误解决
·在SQL Server 2005新建用户出15195错误
 放生
 愚爱
 够爱
 触电
 白狐
 葬爱
 光荣
 画心
 火花
 稻香
 小酒窝
 下雨天
 右手边
 安静了
 魔杰座
 你不像她
 边做边爱
 擦肩而过
 我的答铃
 怀念过去
 等一分钟
 放手去爱
 冰河时代
 你的承诺
 自由飞翔
 原谅我一次
 吻的太逼真
 左眼皮跳跳
 做你的爱人
 一定要爱你
 飞向别人的床
 爱上别人的人
 感动天感动地
 心在跳情在烧
 玫瑰花的葬礼
 有没有人告诉你
 即使知道要见面
 爱上你是一个错
 最后一次的温柔
 爱上你是我的错
 怎么会狠心伤害我
 不是因为寂寞才想
 亲爱的那不是爱情
 难道爱一个人有错
 寂寞的时候说爱我