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

join和union(摘自csdn)

 
阅读更多
引用
1.交集 
  Inner   Join,   等价于select   *   from   a   b   where   a.id=b.id   ,*表示a.*,b.*,一笔纪录你可以取出a,b的栏位 
  
  left   join   或right   join   可以表示差集   ,一笔纪录你可以取出a,b的栏位 
  full   join才是表示并集,select   *   from   a   full   join   b   on   a.id=b.id 
  ,a.id=b.id   为一笔纪录,其他不等的纪录都可以显示,例如a的栏位和null栏位组合,或者null栏位和a组合~ 
  
  另外一个cross   join,如果不加上where条件,就是a的纪录和b的纪录任一组合,加入a有15笔,b有15笔,那么   a   cross   join   b就有225笔,不会有null栏位(当然原来表有另当别论) 
  
  cross   join加上where   就是inner   join 
  select   *   from   a   crossjoin   b   where   a.id   =   b.id等价于select   *   from   a   full   join   b   on   a.id=b.id 
  
  P.S.   not   in-->select   *   from   a   where   a.id   in   (select   b.id     from   b),*表示a你只可以取出a,b的栏位,not   exists,也是如此,这些其实不算是交集或者差集的讨论的范围,每次只是对一个表的纪录进行选取而已,看这句select   *   from   a   where   a.id   not   in   ('1','2')这个算就不能算是差集 
  
  2.UNION表示并集,我觉得不可以完全这样讲 
  union   和join不一样,union这个运算子是将资料列合并,而join是将栏位合并(我前面所讲)! 
  如果从栏位合并来讲,full   join   算是并集,inner   join   算是交集!left   join   或right   join   不完全是差集,也包括交集的结果,具体你的语句的查询结果如何还是要看实际的语句,就如cross   join,加上where就变成inner   join,前后的结果相差甚远 

网上找了一遍,发现一些新东西:
并集 :union select × from a union (all) select × from b  aUb
交集: intersect select × from a intersect select × from b  anb
差集: minus select × from a minus select × from b  a-b
分享到:
评论

相关推荐

    join和union的区别

    NULL 博文链接:https://dongqiang1989-126-com.iteye.com/blog/1839829

    inner join、 left join 、right join、 outer join之间的区别

    `INNER JOIN`仅返回匹配的行,而`LEFT JOIN`和`RIGHT JOIN`分别优先考虑左侧和右侧的表,即使另一侧没有匹配也会返回数据。`FULL OUTER JOIN`则返回所有记录,无论是否有匹配。正确理解这些连接方式有助于更有效地...

    SQL中JOIN和UNION区别、用法及示例介绍

    在SQL中,JOIN和UNION是两种非常重要的操作,它们用于处理多个表的数据结合,但它们的作用和原理有所不同。 JOIN操作主要用于将两个或更多表的数据根据特定条件进行合并。JOIN有四种基本类型: 1. INNER JOIN(内...

    mysql_adv_select.rar_any left join_union

    结合使用`LEFT JOIN`和`UNION ALL`,我们可以构造一个复杂的查询,首先使用`LEFT JOIN`从文章表中获取数据,并关联到分类表以获取对应的分类名称,然后通过`UNION ALL`将不同条件下的查询结果整合在一起。...

    19、Join操作map side join 和 reduce side join

    本文主要探讨了两种 MapReduce 中的 Join 实现:Map Side Join 和 Reduce Side Join。 一、Join 的概念 Join 操作在数据库中是非常常见的,它用于将来自两个或更多表的数据根据某些共享字段(即键)关联起来。在 ...

    MySQL中union和join语句使用区别的辨析教程

    union和join是需要联合多张表时常见的关联词,具体概念我就不说了,想知道上网查就行,因为我也记不准确。 先说差别:union对两张表的操作是合并数据条数,等于是纵向的,要求是两张表字段必须是相同的(Schema of ...

    【MapReduce篇06】MapReduce之MapJoin和ReduceJoin1

    MapReduce之MapJoin和ReduceJoin MapReduce是一种分布式计算模型,广泛应用于大数据处理和分析领域。其中,Join操作是 MapReduce 中的一种基本操作,用于连接来自不同数据源的数据。今天,我们将讲解 MapReduce 之 ...

    用C#实现对DataTable的JOIN,GROUP BY,FILTER,UNIONALL,DISTINCT

    用C#实现对DataTable的JOIN,GROUP BY,FILTER,UNIONALL,DISTINCT

    hadoop Join代码(map join 和reduce join)

    本文将深入探讨Map JOIN和Reduce JOIN两种在Hadoop中实现JOIN的方法,并通过代码示例来阐述它们的工作原理。 1. Map JOIN: Map JOIN在Hadoop中主要应用于小表与大表的连接。小表的数据可以完全加载到内存中,而大...

    Hash join算法原理

    Hash Join 的工作原理分为两个主要步骤:构建和探测。首先,较小的表(称为 build input 或者 S)被加载到内存中的哈希表中。如果哈希表能够完全容纳在内存的 hash area 中,那么就执行最简单的内存哈希连接。如果...

    left join right join inner join 区别和联系

    左连接(LEFT JOIN)、右连接(RIGHT JOIN)和内连接(INNER JOIN)是三种最基本的连接类型。在本节中,我们将详细介绍左连接、右连接和内连接的区别和联系。 左连接(LEFT JOIN) 左连接返回左表中的所有行,右表...

    SQL语句left join/right join/inner join 的用法比较

    总结一下,LEFT JOIN和RIGHT JOIN的区别在于它们对缺失匹配项的处理方式:LEFT JOIN保持左表的完整性,而RIGHT JOIN保持右表的完整性。INNER JOIN则只保留两表中的交集部分。选择使用哪种JOIN取决于你的查询需求,即...

    Linq to datable(Left join right join full join)实例

    Dim fullJoin = leftJoin.Union(rightJoin) ``` 在压缩包中的"WindowsApplication2"可能是VB2010项目文件,包含了具体的代码实现。通过查看和运行这个项目,你可以深入理解如何在实际应用中使用LINQ to ...

    hash join算法原理

    Hash Join 算法是一种高效的数据库连接操作,尤其在...总的来说,Hash Join是一种高效处理大数据连接的算法,通过内存中的Hash Table和分区策略减少了磁盘I/O,但其性能受到多种因素的影响,需要根据具体情况进行优化。

    关于sql的left join,right join,inner join,outerjoin

    总之,LEFT JOIN、RIGHT JOIN、INNER JOIN和OUTER JOIN是SQL语言中的核心部分,理解和熟练运用它们对于任何数据库开发人员都至关重要。通过不断的实践和学习,你可以更好地掌握这些JOIN类型,并在解决复杂数据查询...

    sql join( inner join, outer join) 分析

    在这个主题中,我们将深入探讨INNER JOIN和OUTER JOIN,它们是JOIN的两种主要类型。 首先,我们来看INNER JOIN。INNER JOIN返回两个表中匹配的行。这意味着只有当第一个表中的某行与第二个表中的另一行在指定的关联...

    MySQL JOIN 语法说明与 INNER JOIN 语法用法实例.docx

    6. MySQL 没有提供 SQL 标准中的 FULL JOIN(全连接),可以使用 UNION 关键字来合并 LEFT JOIN 与 RIGHT JOIN,达到模拟 FULL JOIN 的目的。 7. CROSS JOIN 是一种特殊的 JOIN 类型,在不指定 ON 条件下,CROSS ...

    join on 语句及扩展

    这里我们将深入探讨几种JOIN类型及其使用,以及ON和WHERE子句的区别。 1. INNER JOIN: INNER JOIN返回两个表中匹配的记录。这意味着如果某个记录在其中一个表中没有对应的匹配项,那么这个记录就不会出现在结果集中...

Global site tag (gtag.js) - Google Analytics