- 浏览: 587342 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (423)
- windows2003 (1)
- exception (3)
- java (91)
- eclipse (14)
- java web (3)
- javaScript (11)
- 装机 (1)
- sql (34)
- outlook (1)
- html (8)
- JAVA 不同区域服务器引起的乱码解决 (2)
- strtus (3)
- http (1)
- 设计模式 (4)
- Java对存储过程的调用方法 (0)
- java-数据库操作 (0)
- jdbc (7)
- dwr (2)
- 软件版本号 (1)
- jxls (1)
- ExtJS (3)
- Ajax (1)
- git (12)
- linux (20)
- mysql (14)
- maven (16)
- easyui (1)
- 日常备注 (1)
- spring (9)
- others (1)
- windows快捷键 (1)
- 工作备注 (9)
- 工作杂项 (0)
- photoshop (1)
- 开发环境配置 (0)
- jboss (1)
- 报表 (1)
- 图表 (1)
- fckeditor (1)
- 调试bug (2)
- 口令 (1)
- css (2)
- mongodb (7)
- restful (1)
- jsp (5)
- jpa (2)
- bug (1)
- js (2)
- Json (1)
- POI (1)
- xml (2)
- webstorm (1)
- java swing (1)
- ubuntu (3)
- mongo (27)
- 自我学习 (0)
- 草稿 (0)
- 单元测试 (1)
- 数据库 (2)
- ide (1)
- 大数据 (0)
- uml (1)
- spring-boot (1)
- mybatis (3)
- oracle (2)
- jetty (1)
- 学习 (0)
- 系统调优 (1)
- tomcat (2)
- kettle (1)
- 学习资源 (1)
- 架构 (2)
- database (4)
- idea (1)
- consul (1)
- hadoop (2)
- nginx (3)
- 认证 (1)
- 加密 (1)
- connection pool (1)
- loadrunner (1)
- tps (1)
- 翻墙工具 (1)
- redis (2)
- redis jedis shardjedis (1)
- spring boot (1)
- 认证授权 (1)
- ssh (1)
- svn (2)
- 多线程 (1)
最新评论
-
abcdeudi:
不错
接口和抽象类什么时候使用才合适? -
羽翼的心动:
POI中对Word处理,读取不到书签。如果要处理书签的话,就只 ...
POI根据模板(excel表头)导出excel -
pdf1192012:
高质量文章
接口和抽象类什么时候使用才合适? -
沐忆潼:
...
POI根据模板(excel表头)导出excel -
422937561:
高质量文章
接口和抽象类什么时候使用才合适?
通过下面的使用,来辨析"in"与"left jion / right join" 适合使用的场合。
1)in
sql代码如下
运行结果如下:
totalYarnPurchaseOrderQuantity
364.624
2)left jion / right join
sql代码
运行结果如下:
totalYarnPurchaseOrderQuantity purchaseOrderId
364.624 435
364.624 436
364.624 437
364.624 438
364.624 439
364.624 440
364.624 441
364.624 442
364.624 443
364.624 444
364.624 445
3)in
运行结果如下:
totalYarnPurchaseOrderQuantity
364.624
364.624
364.624
364.624
364.624
364.624
364.624
364.624
364.624
364.624
364.624
比较:
一)
3)中的运行结果类似2),不同的是3)中的列只有最后一个表的列,而2)中有right join 所以保留了最初一个表的列的信息。
二)
若要得到的结果是具体“某一类”的结果,可以用1)的写法,1)中没有用到left join和right join 执行效率应该更快,并且因为是具体某一类的结果,所以直接知道最初表的那一列的purchaseOrderId的值。
1)in
sql代码如下
select sum(actualSpun) as totalYarnPurchaseOrderQuantity from ordersummary where orderSummaryId in ( select orderSummaryId from purchaseOrder_material_colorNo_yarnCount_clNoOrYrNo where purchaseOrder_material_colorNo_yarnCount_id in (select purchaseOrder_material_colorNo_yarnCount_id from purchaseOrder_material_colorNo_yarnCount where purchaseOrder_material_colorNo_id in (select purchaseOrder_material_colorNo_id from purchaseOrder_material_colorNo where purchaseOrder_material_id in (select purchaseOrder_material_id from purchaseOrder_material where purchaseOrderId =435 ) ) ) )
运行结果如下:
totalYarnPurchaseOrderQuantity
364.624
2)left jion / right join
sql代码
select sum(actualSpun) as totalYarnPurchaseOrderQuantity, purchaseOrderId from (select actualSpun, t3.purchaseOrderId from orderSummary right join (select orderSummaryId, t2.purchaseOrderId from purchaseOrder_material_colorNo_yarnCount_clNoOrYrNo right join (select purchaseOrder_material_colorNo_yarnCount_id, t1.purchaseOrderId from purchaseOrder_material_colorNo_yarnCount right join (select purchaseOrder_material_colorNo_id, t0.purchaseOrderId from purchaseOrder_material_colorNo right join (select purchaseOrder_material_id, purchaseOrder.purchaseOrderId from purchaseOrder_material right join purchaseOrder on purchaseOrder_material.purchaseOrderId=purchaseOrder.purchaseOrderId )t0 on t0.purchaseOrder_material_id = purchaseOrder_material_colorNo.purchaseOrder_material_id )t1 on t1.purchaseOrder_material_colorNo_id=purchaseOrder_material_colorNo_yarnCount.purchaseOrder_material_colorNo_id )t2 on t2.purchaseOrder_material_colorNo_yarnCount_id=purchaseOrder_material_colorNo_yarnCount_clNoOrYrNo.purchaseOrder_material_colorNo_yarnCount_id )t3 on t3.orderSummaryId=orderSummary.orderSummaryId )t4 group by purchaseOrderId
运行结果如下:
totalYarnPurchaseOrderQuantity purchaseOrderId
364.624 435
364.624 436
364.624 437
364.624 438
364.624 439
364.624 440
364.624 441
364.624 442
364.624 443
364.624 444
364.624 445
3)in
select sum(actualSpun) as totalYarnPurchaseOrderQuantity from ordersummary where orderSummaryId in ( select orderSummaryId from purchaseOrder_material_colorNo_yarnCount_clNoOrYrNo where purchaseOrder_material_colorNo_yarnCount_id in (select purchaseOrder_material_colorNo_yarnCount_id from purchaseOrder_material_colorNo_yarnCount where purchaseOrder_material_colorNo_id in (select purchaseOrder_material_colorNo_id from purchaseOrder_material_colorNo where purchaseOrder_material_id in (select purchaseOrder_material_id from purchaseOrder_material where purchaseOrderId in (select purchaseOrderId from purchaseOrder) ) ) ) )
运行结果如下:
totalYarnPurchaseOrderQuantity
364.624
364.624
364.624
364.624
364.624
364.624
364.624
364.624
364.624
364.624
364.624
比较:
一)
3)中的运行结果类似2),不同的是3)中的列只有最后一个表的列,而2)中有right join 所以保留了最初一个表的列的信息。
二)
若要得到的结果是具体“某一类”的结果,可以用1)的写法,1)中没有用到left join和right join 执行效率应该更快,并且因为是具体某一类的结果,所以直接知道最初表的那一列的purchaseOrderId的值。
发表评论
-
sql批量插入
2017-04-01 17:37 734http://blog.csdn.net/orion61/ar ... -
sum if 或 sum case 加速查询
2016-12-05 08:56 522http://www.jianshu.com/p/c19c99 ... -
sql join 时 on和where 区别
2016-12-05 00:15 391http://blog.csdn.net/muxiaoshan ... -
sql 执行顺序
2016-12-05 00:17 279http://blog.csdn.net/u013600225 ... -
键、索引、约束及其区别 主键约束和唯一性约束的区别
2016-03-28 17:14 778http://blog.csdn.net/dlodj/arti ... -
join......on 后面的and 和where
2014-07-03 11:25 10610运行平台:Mysql 目的:比较join......on 后面 ... -
sql 获取字符串长度SQL字符串操作汇总
2014-04-09 00:57 2664http://blog.csdn.net/a4562834/a ... -
sql server2005服务无法启动
2013-12-18 23:44 612http://blog.sina.com.cn/s/blog_ ... -
分时间段统计(case + group by)
2013-07-20 21:53 1380http://www.cnblogs.com/qiantuw ... -
获取日期的年份,月份,日期
2013-07-20 20:08 888select DATENAME(YEAR,GETDATE()) ... -
sql case when
2013-04-09 14:20 762SELECT *, processStrin ... -
sql 语句顺序 where,group by,order by
2013-02-22 18:06 1016SELECT accessoryItem,accessoryT ... -
statement、prepareStatement、callableStatement的使用
2013-01-18 12:54 7551.PreparedStatement: 带?参数的使用p ... -
sql 多行并一行
2013-01-14 15:26 8071) select _size from clothes wh ... -
sql group by语句
2012-08-23 16:20 759以下写法错误 select orderNo,styleNo,c ... -
sql select时增加常量列
2012-08-23 16:08 12656string sql="select a,b,'常量 ... -
动态sql的传参方法和获取返回值
2012-08-23 15:14 5864一)动态sql的传参方法 /* 实现动态sql传参的方法一 ... -
注意ms sql的substring
2012-08-22 17:21 854MS的substring(列名,n,m) n:起始位置 m: ... -
union all 效率问题
2012-08-21 16:18 805如果union all太多的话,建议使用存储过程,建立一张临时 ... -
外键约束是否必要
2012-08-21 16:15 809外键约束是否必要 http://www.iteye.com/ ...
相关推荐
与LEFT JOIN相反,RIGHT JOIN返回所有右表(B表)的记录,即使在左表(A表)中没有匹配的记录。如果左表中没有匹配项,结果同样会填充NULL值。右连接的SQL语句如下: ```sql SELECT * FROM A RIGHT JOIN B ON A.aID ...
`RIGHT JOIN`也称为`RIGHT OUTER JOIN`,与`LEFT JOIN`相反,它会返回所有右表(在这个例子中是表`B`)的记录,即使左表(表`A`)中没有匹配的记录。如果左表中没有匹配项,则结果集中的这些列将包含`NULL`值。 **...
3. 右外连接(Right Outer Join):包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行。 4. 全外连接(Full Outer Join):包含左、右两个表的全部行,不管另外一边的表中是否...
在SQL语言中,连接(Join)操作是一种非常重要的数据整合方式,主要用于从两个或多个表中提取数据。根据连接方式的不同,可以分为多种类型,包括内连接(Inner Join)、左连接(Left Join)以及右连接(Right Join)...
在本文中,我们将详细介绍SQL Left Join的使用方法、特点和区别,以及与Right Join和Inner Join的比较。 一、SQL Left Join的定义和使用 SQL Left Join也称为左外连接,它可以将左表中的所有记录与右表中的记录...
与LEFT JOIN相反,RIGHT JOIN返回右表的所有记录,即使在左表中没有匹配的记录。如果左表中没有匹配的记录,结果同样会显示NULL。其语法结构与LEFT JOIN类似,只是交换了表的位置: ```sql SELECT column_name(s) ...
在本节中,我们将详细介绍左连接、右连接和内连接的区别和联系。 左连接(LEFT JOIN) 左连接返回左表中的所有行,右表中的行如果存在匹配则返回,否则返回 NULL。左连接的结果集是左表中的所有行,右表中的行如果...
在SQL语言中,`LEFT JOIN` 和 `COUNT` 是两种非常重要的操作,它们在数据库查询中扮演着关键角色。在这个问题中,我们看到一个数据表 `TPL_WORD1`,它包含字段 `Wordid`(主键)、`idFuid`(上一级节点ID)和 `Name`...
随着Hive版本的不断更新,部分用户在升级至Hive 3之后遇到了数据处理中的一个常见问题——在执行Left Join操作时出现数据缺失。 #### 二、问题复现 问题发生在如下的SQL语句中: ```sql SELECT a.* FROM ( SELECT ...
SQL语句优化对于大型数据库系统至关重要,特别是在涉及多表查询时,JOIN、LEFT JOIN 和 RIGHT JOIN 的高效运用能显著提升查询速度。以下将详细探讨这些JOIN类型以及相关的优化策略。 JOIN原理: JOIN操作实际上是...
### (Left join , Right Join, Inner Join)用法详解 #### 一、基本概念与应用场景 在数据库查询语言SQL中,连接(Join)是一种非常重要的操作,它允许我们结合两个或多个表的数据来检索信息。根据不同的连接方式,...
9.1.9 解释 SQL 的 left join 和 right join
left_join_on_and与left_join_on_where的区别
在SQL中,主要有四种类型的连接查询:内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN)。下面将详细解释这四种连接方式。 1. 内连接(INNER JOIN): 内连接返回两个表中...
SQL中的JOIN操作是数据库查询中不可或缺的部分,特别是LEFT JOIN和RIGHT JOIN,它们允许我们合并来自多个表的数据,根据特定的关联条件。以下是这些JOIN类型详细解释: 1. INNER JOIN(或简写JOIN): INNER JOIN...
SQL学习八-LEFT JOIN && RIGHT JOIN
SQL 外链接操作小结 inner join left join right join SQL 外链接操作是关系型数据库管理系统中的一种基本操作,用于从多个表中检索数据。外链接操作可以分为三种:inner join、left join 和 right join。 inner ...
SQL语句优化——in,not in,exists,not exists, left join...on博客所需SQL语句.txt欢迎下载!
在SQL查询语言中,`JOIN`是一个非常重要的概念,它允许我们从两个或多个表中提取数据。通过使用不同类型的JOIN操作,我们可以根据表之间的关系来灵活地组织数据。下面我们将详细介绍几种常见的JOIN类型:内连接...
### SQL中JOIN的使用详解 在SQL查询语言中,`JOIN`操作是非常重要的一个部分,它主要用于合并两个或多个表中的数据。通过不同的`JOIN`类型,我们可以灵活地获取所需的组合数据。本文将详细介绍五种主要的`JOIN`类型...