`
fengyong0912
  • 浏览: 107004 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

左连接与右连接

阅读更多

假设有如下表:


一个为投票主表,一个为投票者信息表~记录投票人IP及对应投票类型,左右连接实际说是我们联合查询的结果以哪个表为准~
1:如右接连 right join 或 right outer join:

我们以右边voter表为准,则左表(voteMaster)中的记录只有当其ID在右边(voter)中存在时才会显示出来,如上图,左边中ID为3.4.5.6因为这些ID右表中没有相应记录,所以没有显示!
2:因此我们自然能理解左连接 left join 或者 left outer join

可见,现在右边中ID在中存在时才会显示,当右边中没有相应数据时则用NULL代替!
3:全连接 full join 或者 full outer join,为二个表中的数据都出来,这里演示效果与上一样!
4:内连接 inner join 或者 join;它为返回字段ID同时存在于表voteMaster 和 voter中的记录

5:交叉连接(完全连接)cross join 不带 where 条件的
没有 WHERE 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。(table1和table2交叉连接产生6*3=18条记录)

等价select vm.id,vm.voteTitle,vt.ip from voteMaster as vm,voter as vt

6:自连接。在这里我用我前段时间一个电力项目中的例子(改造过)
如下表:

这是一个部门表,里面存放了部门及其上级部门,但都放在同一张表中,我们假设现在需要用SQL查询出各部门及其上级部门!就如何做,
当然,不用自连接也一样,可以如下:

我们达到预期目的!在这个查询中使用了一个子查询完成对上级部门名的查询,如果使用自连接,那么结构上感觉会清晰很多。

是不是也同样完成了功能呢,这里除了使用自连接外,还使用了左连接,因为省电力没有上级部门,他是老大,如果使用内连接,就会把这条记录过滤掉,因为没有和他匹配的上级部门。
自连接用的比较多的就是对权形结构的查询!类似上表!

<script type="text/javascript"></script>

分享到:
评论

相关推荐

    mysql全连接、左连接与右连接.pdf

    mysql全连接、左连接与右连接

    数据结构左右连接

    右连接与左连接相反,它返回右表的所有记录及左表中匹配的记录。如果左表没有与右表相匹配的记录,则结果集中相应的列将显示为NULL。同样地,右连接可以通过`RIGHT JOIN`或`RIGHT OUTER JOIN`来实现。 示例中的另一...

    mysql之左连接与右连接.doc

    MySQL 左连接与右连接详解 MySQL 中的连接操作是指将两个或多个表中的数据结合起来,以便更好地查询和分析数据。左连接(LEFT JOIN)和右连接(RIGHT JOIN)是两种常见的连接类型,本文将详细介绍它们的区别和使用...

    左外连接右外连接,内连接区别

    右外连接(RIGHT OUTER JOIN)则是以右表为基础进行操作,与左外连接类似,但方向相反。`SELECT * FROM t1 RIGHT JOIN t2 ON t1.id = t2.id` 会返回所有右表 t2 的记录,以及与左表 t1 匹配的记录。在这个例子中,t2...

    Oracle左连接,右连接.doc

    ### Oracle左连接与右连接详解 #### 一、概述 在数据库操作中,表与表之间的连接是非常重要的操作之一。连接操作可以将多个表的数据整合在一起,形成更完整的信息视图。根据不同的需求,Oracle提供了多种连接方式...

    oracle 左连接 右连接学习

    右连接与左连接类似,但它返回右表中的所有记录,并将左表中的记录匹配到右表中。如果左表中没有匹配的记录,将以 null 值代替。 内连接(Inner Join) 内连接返回两个表中公共的记录,即两表中的交集。例如: ...

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

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

    SQL关于内连接,外连接(左右连接)等的总结

    右连接与左连接相反,它保留右表的所有记录。如果左表中没有匹配的记录,结果集中的相应列将填充为NULL。对于上述的员工和部门的例子,如果我们关心的是包含所有部门,即使没有员工在该部门,可以使用右连接。 ```...

    SQL之左连接、右连接和全连接.doc

    SQL 左连接、右连接和全连接知识点 在关系数据库管理系统中,连接操作是将两个或多个表连接起来,以便从多个表中检索数据。SQL 提供了多种连接操作,包括左连接、右连接和全连接。本篇文章将详细讲解左连接、右连接...

    左连接和右连接

    右连接与左连接相反,它返回所有右表(即第二个指定的表)的行以及左表中匹配的行。如果左表中没有匹配的行,则结果集中的左表列将包含NULL值。也就是说,右连接确保了右表的所有记录都将出现在结果集中。 #### ...

    SQL 左外连接,右外连接,全连接,内连接 四种连接的差异.doc

    SQL 连接的四种类型:左外连接、右外连接、全连接、内连接 在 SQL 中,连接(JOIN)是一种非常重要的概念,它允许我们从多个表中检索数据。连接可以分为四种类型:左外连接、右外连接、全连接和内连接。每种连接都...

    Oracle左右连接及一些练习资料

    "SQL语句.pdf"可能包含了更广泛的SQL语句类型,包括各种JOIN操作,如左连接、右连接、全连接和内连接,以及子查询、联接查询等。通过这些练习,你可以提升SQL编写能力,更好地处理复杂的数据关系。 "Oracle_01.pdf...

    SQL内左右自连接.doc

    右连接的语法与左连接类似,只是交换了表的位置: ```sql SELECT * FROM department RIGHT JOIN employee ON employee.deptid = department.id; ``` 这将返回所有部门的信息,包括那些没有员工的部门。 最后,全...

    oracle左右连接方法

    与左连接相反,右连接会返回所有右表记录,即使在左表中没有匹配项也会返回右表的所有记录。对于那些在左表中没有匹配项的右表记录,其对应的左表字段将被填充为NULL值。 #### 示例 执行右连接查询: ```sql ...

    数据库:左连接、右连接、全连接

    外连接(OUTER JOIN)是一种连接操作,用于查询多个表中的数据,但不 sadece 返回符合连接条件的数据行,而是返回左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中的所有数据行。外连接可以分为三种...

    Oracle 左连接、右连接

    右连接与左连接相反,它返回右表的所有记录,即使在左表中没有匹配的记录。对于左表中没有匹配的右表记录,结果集将显示为NULL。右连接在你需要保留所有右表数据,同时获取与之关联的左表数据时很有用。以同样的员工...

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

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

    sql左连接,右连接,内连接,全连接讲解

    sql左连接,右连接,内连接,全连接详细讲解

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

    右连接与左连接相反,它返回右表中的所有记录,并且返回左表中与之匹配的记录。如果左表中没有匹配的记录,则结果集中对应的列将显示为`NULL`。 **示例**:继续使用投票主表(voteMaster)和投票者信息表(voter)...

    oracle数据库 左连接 右连接 自连接 。。

    右连接与左连接相反,它返回右表的所有记录,以及与之匹配的左表记录。如果左表中没有匹配的记录,结果将显示右表记录和左表的NULL值。右连接在需要确保右表所有数据都被包含时非常有用。 SQL语法示例: ```sql ...

Global site tag (gtag.js) - Google Analytics