Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1242832
  • 博文数量: 510
  • 博客积分: 20296
  • 博客等级: 上将
  • 技术积分: 4680
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-30 03:58
文章存档

2011年(13)

2010年(92)

2009年(242)

2008年(163)

我的朋友

分类: 数据库开发技术

2009-01-26 20:00:00

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

    Subquery 的语法如下:

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

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

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

 Store_Information 表格

store_name

Sales

Date

Los Angeles

$1,500

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 来达到我们的目的:

  1. SELECT SUM(Sales) FROM Store_Information
  2. WHERE Store_name IN
  3. (SELECT store_name FROM Geography
  4. WHERE region_name = 'West')

结果:

SUM(Sales)
2050

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

上一页:SQL 外部连接

下一页:SQL Union ALL

阅读(686) | 评论(0) | 转发(0) |
0

上一篇:15.SQL 外部连接

下一篇:17.SQL Union

给主人留下些什么吧!~~