`

多次使用 left join 左连接 多个表

 
阅读更多
1:product_version 2: p_category 3:p_category_product
引用

select
  pc.name as "产品类别",
  pv.product_id "产品ID",
  pv.version_id as "版本ID",
  pv.name as "产品名称",
  pv.price as "原价",
  pv.curr_price "现价",
  pv.onsale_time as "上架时间",
  decode(pv.cost_type,1,'按次',2,'包时段',3,'按课时',4,'免费') as "计费类型",
  case
    when pv.cost_type=2 and pv.useful_life_type=1 then '有效天数'
    when pv.cost_type=2 and pv.useful_life_type=2 then '截止日期'
  end as "有效期类型",
  pv.end_date as "过期时间"
from product_version pv
left join p_category_product pcp on pcp.product_id=pv.product_id
left join p_category pc on pc.id=pcp.p_category_id
where pv.sale_on_class=1 and pv.status=1
order by 2 desc;

分享到:
评论
1 楼 liuna2011 2011-12-15  
ps:Oracle中CASE WHEN的用法实例,可用于分组分段统计
http://blog.csdn.net/rznice/article/details/6772000

相关推荐

    MySQL的LEFT JOIN表连接的进阶学习教程

    MySQL的LEFT JOIN表连接是一种在数据库操作中合并多个表数据的关键技术。LEFT JOIN的主要特点是返回所有左表(即连接查询中的第一个表)的记录,即使在右表(第二个表)中没有匹配的记录。左表的每一行都会与右表的...

    MySQL 8.0.18 Hash Join不支持left/right join左右连接问题

    在实际应用中,这可能意味着对于那些需要使用左连接或右连接的场景,开发者需要重新考虑他们的查询策略,或者等待MySQL后续版本是否能修复这个问题。同时,这也提醒我们,数据库优化不仅仅是关于添加索引,有时选择...

    表连接 SQL JOIN 速查表

    在SQL中,表连接(JOIN)是用于合并两个或多个表的数据的关键操作,它允许你在查询时基于共同的列从不同的表中检索信息。这里我们将深入探讨几种主要的JOIN类型,包括自然JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN...

    mysql_adv_select.rar_any left join_union

    在本场景中,`UNION ALL`可能用于合并多个`LEFT JOIN`查询的结果,以便一次性获取所有符合特定条件的文章及其分类信息。 结合使用`LEFT JOIN`和`UNION ALL`,我们可以构造一个复杂的查询,首先使用`LEFT JOIN`从...

    oracle多表连接技巧

    在Oracle数据库中,多表连接是一种非常实用且常用的技术,它允许用户从多个表中获取数据,并基于特定条件进行匹配和整合。本文将详细介绍Oracle中多表连接的各种类型及其应用场景。 #### 二、基本概念 在开始讲解...

    oracle-join用法

    Oracle Join是数据库操作中一种非常重要的技术,用于合并多个表的数据。在Oracle SQL中,Join主要分为几个类型,包括INNER JOIN、LEFT JOIN (LEFT OUTER JOIN)、RIGHT JOIN (RIGHT OUTER JOIN)以及FULL JOIN (FULL ...

    Hibernate 多表连接分页查询示范项目

    对于多表连接,Criteria API 可以通过 JoinType 类型的 JOIN 方法实现,如 INNER JOIN、LEFT JOIN 等。 **分页查询** 在大数据量的场景下,分页查询是必不可少的,它可以提高用户体验并减少服务器负载。Hibernate ...

    MySQL中基本的多表连接查询教程

    在MySQL中,多表连接查询是数据库操作中的一个重要部分,特别是在处理复杂的数据关系时。本文将详细介绍几种常见的连接类型,并提供实例来帮助理解。 1. 笛卡尔积(交叉连接) 笛卡尔积是通过CROSS JOIN或直接使用...

    Laravel开发-with-join

    `left join`是一种连接两个或更多表的方法,它返回所有左表(在`left join`前的表)的记录,即使在右表中没有匹配的记录。这对于展示所有左侧数据,同时包含右侧匹配数据的场景非常有用。 使用`left join`优化`...

    sql语句中join的用法和效率说明.doc

    RIGHT JOIN也称为右外连接,与LEFT JOIN相对应,它会返回右表的所有记录以及左表中与之匹配的记录。如果左表中没有匹配项,则结果集中的相应位置显示为NULL。 **语法示例:** ```sql SELECT * FROM TableA RIGHT ...

    通用的分页存储过程,内置的函数、内连接、左外连接

    另一方面,"左外连接"(LEFT JOIN)则会返回所有左表(通常是主表)的记录,即使在右表中没有匹配的记录。如果右表有匹配,结果将包含右表的记录;如果没有,相应的字段将填充为NULL。这在处理不完全一对多或多对多...

    关于SQL 中的inner join的使用

    **INNER JOIN** 是SQL中最常用的连接类型之一,主要用于从两个或多个表中提取数据,其中仅返回那些满足连接条件的记录。简单来说,INNER JOIN返回的是两个表中匹配部分的数据。 #### 二、INNER JOIN的语法结构 ...

    第六章 (6.1)sql多表查询

    左外连接(Left Outer Join)返回所有左表中的数据行以及右表中匹配的数据行。如果没有匹配的数据行,则右表中的对应列将以 NULL 填充。例如,如果要从 `student` 表中获取所有学生的信息,并且尝试连接 `score` 表...

    表的连接和嵌套查询

    在SQL中,常见的连接类型有内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN)。实验中使用的是内连接(INNER JOIN),它返回两个表中匹配的行。例如,查询借阅了类别为“环境”类图书的...

    数据库 增删改查 函数表 连接

    在这个过程中,我们还需要了解如何利用函数进行复杂的数据处理,并熟悉不同类型的表连接,以实现多表之间的数据交互。 增(Create)操作在数据库中意味着添加新的记录。例如,当你创建一个新的用户账户或记录一次...

    mysql临时表用法分析【查询结果可存在临时表中】

    MySQL临时表是一种在会话范围...临时表可以帮助优化查询性能,特别是在需要多次处理相同数据集的情况下,避免了反复执行相同的查询。此外,它们在存储过程和事务中也发挥着重要作用,帮助开发者实现更复杂的业务逻辑。

    多表联查分页显示

    INNER JOIN返回两个表中匹配的行,LEFT JOIN返回左表的所有行及右表匹配的行,RIGHT JOIN反之,而FULL JOIN则返回所有可能的组合,无论是否在两表中都有匹配。 在描述中提到的“简单的servlet多表联查”,Servlet是...

    TERADATA JOIN的实现机制.docx

    Teradata JOIN的实现机制涉及到多个关键点,包括LEFT Outer Join的工作原理、Join前的数据重分布、小表的复制以及Merge Join的适用情况和处理流程。以下是对这些知识点的详细解释: 1. LEFT Outer Join: LEFT ...

Global site tag (gtag.js) - Google Analytics