All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
故障解决:PHPMyAdmin连接MYSQL的问题_php资料_编程技术
PHP应用技巧小总结:几个有用的小技巧_php资料_编程技术
在C语言中以编程的方式获取函数名_[Asp.Net教程]
一个表,有金额,有日期,如何按月统计金额_[SQL Server教程]
在PHP中开发XML应用程序之基础篇_php资料_编程技术
Visual C++ 6.0教程:c++数据类型之结构
ASP.NET定制错误处理页面_[Asp.Net教程]
ASP.NET动态网页制作初学者备忘录_.net资料_编程技术
WML学习(一)-概述和基本规则_[XML教程]
在ASP.Net,2.0中实现多语言界面的方法_[Asp.Net教程]
Reading number is top 10 pictures
NeedWallpaper13
A man's favorite things2
王艳写真温柔如水1
From China fortress sora aoi5
Plump breasts1
Earthquake hedge common sense
人美胸美腿更美1
Sora aoi possession of boudoir1
超强高考作文
到南昌西站了2
Download software ranking
C#与.NET技术平台实战演练
Proficient in JavaScript
Sora aoi‘s film--Lust fan wall
Kung.Fu.Panda.2
Unix video tutorial19
Detective task-the top secret prostitution files
asp.netWeb服务器高级编程
JSP+Ajax Web development typical examples
Eclipse 4.2.1 For Win32
Tram sex maniac 2 (H) rar bag8
归海一刀 published in(发表于) 2014/2/3 6:44:35 Edit(编辑)
实例简析SQL嵌套子查询_[SQL Server教程]

实例简析SQL嵌套子查询_[SQL Server教程]

实例简析SQL嵌套子查询_[SQL Server教程]

一些初级程序员常常对SQL语法中的子查询,由其对嵌套子查询(子查询中包含一个子查询)的使用比较生疏,本文就此做一个基本讲解,相信新手会有一定收获。
使用子查询的原则
1.一个子查询必须放在圆括号中。
2.将子查询放在比较条件的右边以增加可读性。
子查询不包含 ORDER BY 子句。对一个 SELECT 语句只能用一个 ORDER BY 子句,
并且如果指定了它就必须放在主 SELECT 语句的最后。
ORDER BY 子句可以使用,并且在进行 Top-N 分析时是必须的。
3.在子查询中可以使用两种比较条件:单行运算符和多行运算符。

子查询的类型
单行子查询:从内 SELECT 语句只返回一行的查询
多行子查询:从内 SELECT 语句返回多行的查询

单行子查询
单行子查询是从内查询返回一行的查询。在该子查询类型中用一个单行操作符。幻灯片中列出了单行操作符。


显示那些 job ID 与雇员 141 相同的雇员。
SELECT last_name, job_id
FROM employees
WHERE job_id =
(SELECT job_id
FROM employees
WHERE employee_id = 141);

SELECT last_name, job_id, salary
FROM employees
WHERE job_id =
(SELECT job_id
FROM employees
WHERE employee_id = 141)
AND salary >
(SELECT salary
FROM employees
WHERE employee_id = 143);

显示 job ID 与雇员 141 相同,并且薪水 高于雇员 143 的那些雇员。

注:外和内查询可以从不同的表中取得数据。

SELECT last_name, job_id, salary
FROM employees
WHERE salary =
(SELECT MIN(salary)
FROM employees);

求所有人谁的工资最小。

SELECT department_id, MIN(salary)
FROM employees
GROUP BY department_id
HAVING MIN(salary) >
(SELECT MIN(salary)
FROM employees
WHERE department_id = 50);

求每个部门的最小工资,但是要高于50号部门的工资。

SELECT employee_id, last_name
FROM employees
WHERE salary =
(SELECT MIN(salary)
FROM employees
GROUP BY department_id);

问题出现在:单行子查询返回了多个查询值;
应改为:
SELECT employee_id, last_name
FROM employees
WHERE salary in
(SELECT MIN(salary)
FROM employees
GROUP BY department_id);

SELECT last_name, job_id
FROM employees
WHERE job_id =
(SELECT job_id
FROM employees
WHERE last_name = ’Haas’);

如果子查询返回的是零值,不会对主程序造成影响;
如果子查询返回的是空值,那么会影响主程序的返回值;
SELECT employee_id,
last_name
FROM employees
WHERE employee_id NOT IN
(SELECT manager_id
FROM employees)

SELECT employee_id,
last_name
FROM employees
WHERE employee_id NOT IN
(SELECT manager_id
FROM employees
WHERE manager_id IS NOT NULL)

放在select下的子查询的返回值必须是一个具体值,
from后面也可以加子查询;
having后面也可以加子查询;
order by后面也可以;




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.