`

subquery 框架

阅读更多

我们可以在一个 SQL 语句中放入另一个 SQL 语句。当我们在 WHERE 子句或 WHERE 子句或 HAVING 子句中插入另一个 SQL 语句时,我们就有一个 subquery 的架构。 Subquery 的作用是什么呢?第一,它可以被用来连接表格。另外,有的时候 subquery 是唯一能够连接两个表格的方式。

Subquery 的语法如下:

SELECT "栏位1"
FROM "表格"
WHERE "栏位2" [比较运算素]
(SELECT "栏位1"
FROM "表格"
WHERE [条件])

[比较运算素] 可以是相等的运算素,例如 =, >, <, >=, <=. 这也可以是一个对文字的运算素,例如 "LIKE."

我们就用刚刚在阐述 SQL 连接时用过的例子:

Store_Information 表格

store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
Geography 表格
region_name store_name
East Boston
East New York
West Los Angeles
West San Diego

我们要运用 subquery 来找出所有在西部的店的营业额。我们可以用下面的 SQL 来达到我们的目的:

SELECT SUM(Sales) FROM Store_Information
WHERE Store_name IN
(SELECT store_name FROM Geography
WHERE region_name = 'West')

结果:

SUM(Sales)
2050

在这个例子中,我们并没有直接将两个表格连接起来,然后由此直接算出每一间西区店面的营业额。我们做的是先找出哪些店是在西区的,然后再算出这些店的营业额总共是多少。

分享到:
评论

相关推荐

    Laravel开发-eloquent-subquery-magic

    在Laravel框架中,Eloquent ORM(对象关系映射)是用于处理数据库操作的强大工具,它使得PHP开发者能够以更加面向对象的方式与数据库交互。Eloquent Subquery Magic是Eloquent ORM的一个扩展,它增强了原生Eloquent...

    tp5.1框架数据库子查询操作实例分析

    本文实例讲述了tp5.1框架数据库子查询操作。分享给大家供大家参考,具体如下: 首先构造子查询SQL,可以使用下面三种的方式来构建子查询。 使用fetchSql方法 fetchSql方法表示不进行查询而只是返回构建的SQL语句,...

    pageHelper分页失效解决方案.docx

    1. 使用子查询:Instead of using a left join, we can use a subquery to retrieve the data. 2. 使用union all:We can use union all to combine the results of multiple queries. 3. 使用PageHelper的 ...

    C#/.Net/数据库笔试资料

    SQL是用于管理关系型数据库的标准语言,包括查询(SELECT)、插入(INSERT)、更新(UPDATE)和删除(DELETE)数据的基本语句,以及更复杂的联接(JOIN)、子查询(SUBQUERY)和存储过程(STORED PROCEDURE)等。...

    CoreData多表查询

    它是一个对象关系映射(ORM)框架,能够将数据库操作转化为面向对象的代码,简化数据管理。在这个"CoreData多表查询"的示例中,我们将深入探讨如何在多个表之间执行复杂的查询。 在iOS开发中,CoreData通常通过...

    java语言的分页查询功能(mysql和sql server)

    SELECT TOP limit * FROM (SELECT TOP (limit + offset) * FROM table ORDER BY id) AS subquery WHERE ROW_NUMBER() OVER(ORDER BY id) &gt; offset ``` 3. Java代码实现:创建`PreparedStatement`对象,设置参数...

    2018迅雷面试题

    - **SQL语言**:熟练掌握SQL的基本语法,包括增删改查(CRUD)操作、连接查询(Join)、子查询(Subquery)等。 - **事务管理**:理解事务的ACID特性,掌握如何在Java程序中使用JDBC进行事务管理。 - **ORM框架**:熟悉...

    Oracle中(column1,column2..)in(集合/子查询)的hibernate实现

    在Hibernate这个Java持久化框架中,实现这样的查询需要利用其提供的HQL(Hibernate Query Language)或者Criteria API。这篇博客文章“Oracle中(column1,column2..)in(集合/子查询)的hibernate实现”可能详细解释了...

    2017测试开发美团面试总结

    6. **数据库知识**:SQL查询能力是必备的,包括选择(SELECT)、插入(INSERT)、更新(UPDATE)和删除(DELETE)操作,以及更高级的联接(JOIN)、子查询(SUBQUERY)等。 7. **性能测试**:JMeter、LoadRunner等...

    c#笔试题asp.net笔试题

    ) subquery WHERE cumulative_bonus ``` 7. **HTML绘制表格** 创建一个简单的3行2列的表格,如下所示: ```html &lt;td&gt;blue &lt;td&gt;red &lt;td&gt;green &lt;td&gt;&lt;/td&gt; ``` `table`定义表格,`tr`表示行,...

    c#经典面试题(自己整理)

    ) AS SubQuery WHERE ROW_NUMBER() OVER (ORDER BY ID) BETWEEN 31 AND 40 ``` 这条查询首先从A表中选取前40条记录,然后在子查询结果中选取第31到第40条记录。注意,实际的SQL可能需要根据具体的数据库系统进行调整...

    三年程序人生的一点积累

    熟练掌握SQL语法,包括选择(SELECT)、插入(INSERT)、更新(UPDATE)和删除(DELETE)操作,以及更复杂的联接(JOIN)、子查询(SUBQUERY)和聚合函数(GROUP BY),是数据库管理的基础。了解事务处理和索引优化...

    西安电子科技大学数据库所有课件

    王小兵老师的课件可能包含了SQL的基本语法,如SELECT、INSERT、UPDATE、DELETE语句,以及JOIN、SUBQUERY、GROUP BY、HAVING等高级查询技巧。 【数据库管理系统】 数据库管理系统(DBMS)是用于控制数据库模式、...

    jpa工作中,多表查询的使用方式-----curd的Demo ,基本掌握后,jpa 就不是问题了

    在Java开发中,Java Persistence API(JPA)是一种标准的ORM(对象关系映射)框架,用于处理Java应用中的数据库操作。它简化了数据库交互,让开发者可以使用面向对象的方式来处理数据,而无需直接编写SQL语句。服务...

    对IBatis分页的改进,使ibatis支持hibernate式的物理分页.doc

    SELECT * FROM (&lt;原始SQL&gt;) AS subquery LIMIT ? OFFSET ? ``` 其中,问号(?)将被`maxResults`和`skipResults`替换。对于其他数据库系统,如Oracle,可以使用`ROWNUM`或者`FETCH NEXT`子句来实现类似的功能。 实现...

    JavaWeb 数据库分页原理解析 保证你看得懂 简单易学

    ) subquery ``` 2. **基于LIMIT和OFFSET的分页**:大多数SQL数据库都支持LIMIT和OFFSET关键字,它们可以直接用于分页。例如,在MySQL中,可以这样写: ```sql SELECT * FROM your_table LIMIT pageSize OFFSET ...

    Java实现的分页工具类

    String countSql = "SELECT COUNT(*) FROM (" + sql + ") AS subquery"; ResultSet countRs = countStmt.executeQuery(countSql); countRs.next(); int totalCount = countRs.getInt(1); // 计算总页数 int ...

    数据库高级技术

    这包括联接(Join)、分组(GroupBy)、聚合(Aggregate)、子查询(Subquery)等,能够灵活运用这些查询技巧可以解决各种数据处理问题。 5. 事务处理:在数据库操作中,事务用于确保数据的一致性和完整性。理解...

    Laravel开发-builder .zip.zip

    在本文中,我们将深入探讨Laravel框架中的Builder,它是Laravel查询构造器的核心部分,用于构建和执行数据库查询。Laravel作为一个优雅的PHP框架,它的Builder使得开发者能够以一种简洁、可读性强的方式处理数据库...

Global site tag (gtag.js) - Google Analytics