`

Oracle left join

阅读更多

left join可以连接两表数据 可以用on 和 where 连接两表数据

 

             select tp.processname,
                    tp.nodename,
                    tp.plantime,
                    tk.maxtime,
                    tk.mintime,
                    tk.avgtime
               from (SELECT DISTINCT t1.processname,
                                     t4.nodename,
                                     to_char(t3.day / 3600 / 24,
                                             '9999999990.99') AS plantime
                       FROM losd_process  t1,
                            losi_taskplan t2,
                            losi_itemplan t3,
                            losd_node     t4
                      WHERE t1.process_id = t2.task_id
                        AND t2.board_id = t3.board_id
                        AND t1.process_id = t4.process_id
                        AND t4.node_id = t3.element_id
                        AND t4.nodetype = 2
                        AND t3.elementtype = 1) tp
               left join (select s.nodename,
                                 s.processname,
                                 to_char(max(s.time), '9999999990.99') maxtime,
                                 to_char(min(s.time), '9999999990.99') mintime,
                                 to_char(avg(s.time), '9999999990.99') avgtime
                            from (select (t.finishtime - t.receivetime) as time,
                                         n.nodename,
                                         p.processname
                                    from losi_token   t,
                                         losd_node    n,
                                         losd_process p
                                   where t.nodetype = 2
                                     and t.node_id = n.node_id
                                     and n.process_id = p.process_id
                                     and t.finishtime is not null) s
                           group by s.nodename, s.processname) tk
                 on (tp.processname = tk.processname and
                    tp.nodename = tk.nodename)
 
分享到:
评论

相关推荐

    oracle性能优化技巧

    ### Oracle性能优化技巧详解 #### 一、Oracle优化器模式 在Oracle数据库中,优化器是决定查询执行计划的关键组件,其目标是最小化资源消耗并最大化查询性能。Oracle提供了三种主要的优化器模式:基于规则(RULE)...

    left join 过滤条件写在on后面和写在where 后面的区别

    ### left join 过滤条件写在on后面和写在where 后面的区别 在SQL查询语句中,连接(JOIN)是一种非常重要的操作,用于从两个或多个表中获取数据。其中,`LEFT JOIN`是一种常用的连接类型,它返回左表的所有记录以及...

    深入Oracle的left join中on和where的区别详解

    在Oracle数据库中,LEFT JOIN是一种联接操作,用于合并两个或更多表的记录,返回所有左表(第一个提及的表)的记录,即使在右表中没有匹配的记录。LEFT JOIN的关键在于它会保留左表的所有行,并尝试与右表匹配。当...

    oracle中left join和right join的区别浅谈

    在Oracle数据库中,JOIN操作是用于合并两个或更多表中的数据行,以便基于它们之间的相关列获取结果集。LEFT JOIN(也称为LEFT OUTER JOIN)和RIGHT JOIN(也称为RIGHT OUTER JOIN)是两种特殊的JOIN类型,它们在处理...

    oracle-join用法

    在Oracle SQL中,Join主要分为几个类型,包括INNER JOIN、LEFT JOIN (LEFT OUTER JOIN)、RIGHT JOIN (RIGHT OUTER JOIN)以及FULL JOIN (FULL OUTER JOIN)。这些类型在Java编程中同样可以使用,通过SQL查询语句来实现...

    oracle join on 数据过滤问题

    在Oracle数据库中,JOIN操作是连接两个或多个表以获取跨表的数据。在这个特定的问题中,用户遇到了在使用JOIN ON进行数据过滤时遇到的问题。原始的SQL查询未能返回期望的所有结果,但通过调整查询结构,用户成功地...

    简述Oracle中in和exists的不同

    且看接下来的具体分析:in其实是将外表和内表进行hash join,exists是先对外表进行loop操作,然后每次loop后再对内表进行查询。 如果两张表大小差不多,那么exists和in的效率差不多。 例如: 一张大表为A,一张小表B...

    oracle 连接 join at

    2. **左连接(LEFT JOIN)**:返回左表的所有记录,即使右表中没有匹配的记录。如果右表中没有匹配,则结果为NULL。 3. **右连接(RIGHT JOIN)**:与左连接相反,返回右表的所有记录,即使左表中没有匹配的记录。 ...

    left-right-join.zip_join_oracle

    本主题主要聚焦于Oracle中的两种特殊连接方式:左外连接(LEFT JOIN)和右外连接(RIGHT JOIN)。通过深入理解这两种连接类型,我们可以更好地进行数据融合,获取更全面的信息。 首先,让我们从基本概念出发。在SQL...

    Hashtable和HashMap区别

    在Oracle中,使用`(+)`符号来表示LEFT JOIN的左表字段,在WHERE子句中,如果左表字段有`(+)`符号,那么这个字段可以为空,表示的是左外连接。 ### JSP与Servlet的关系 JSP(Java Server Pages)和Servlet是Java ...

    sql join( inner join, outer join) 分析

    至于标签“源码”和“工具”,这可能暗示在某些数据库管理系统(如MySQL、Oracle、SQL Server等)中实现JOIN操作的特定语法,或者可能涉及到使用某种查询工具(如SQL Developer、SSMS等)来编写和执行JOIN查询。...

    Oracle左连接返回多条记录中一条记录的查询语句

    Oracle左连接返回多条记录中一条记录的查询语句,更具指定条件分组排序,返回各组中第一条记录

    oracle 资料

    本篇文章将详细探讨Oracle中的JOIN操作,包括各种类型的JOIN以及它们的使用方式。 1. JOIN概述 在Oracle中,JOIN操作允许我们将两个或更多表的行合并到一起,基于这些表之间的关联字段。这些关联通常定义在ON子句中...

    Oracle 左连接、右连接

    本篇文章将深入探讨Oracle中的左连接(LEFT JOIN)和右连接(RIGHT JOIN),这两种连接方式都是为了在不同表之间建立联系,特别是在数据不完全匹配的情况下。 首先,我们来看一下左连接(LEFT JOIN)。左连接返回左...

    Oracle中sql语句(+)符号代表连接的使用讲解

    oracle中sql语句(+)符号代表连接 (+)在=前边为右连接 (+)在=后边为左连接 SELECT a.*, b.* from a(+) = b就是一个右连接,等同于select a.*, b.* ...LEFT JOIN 或LEFT OUTER JOIN 列出左表中的所有行,若左表中某行

    一个过滤重复数据的 SQL 语句

    过滤重复数据的 SQL 语句 在关系数据库管理系统中,经常会遇到重复数据的问题,而过滤重复数据是数据处理和分析的重要步骤。本文将介绍如何使用 SQL 语句来过滤重复数据,并讨论相关的知识点。...

    Oracle Sql基础(beginning oracle sql中文版)

    在Oracle SQL中,可以使用INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN来合并来自两个或更多表的数据。JOIN操作基于不同表之间的关联列。 八、子查询 子查询是在SELECT、FROM或WHERE子句中嵌套的查询,用于返回...

Global site tag (gtag.js) - Google Analytics