当前位置: 首页 > 图文教程 > 数据库 > 数据库技巧 > SQL嵌套查询总结

数据库技巧
一条DELETE语句
SQL SERVER 里的错误处理(try catch)
恢复 SQL 被注入后的数据代码
大数据量时提高分页的效率
数据库命名规范小结
where 子句的执行顺序
当数据库变慢时的解决方法
MYSQL 导入数据的几种不同
用户管理的备份(一致性备份、非一致性备份、脱机备份、联机备份)
多条件查询的程序
[原创]access mysql mssql 随机 10条数据的sql语句
Sybase 复制与热切换数据
Sql Server、Access数据排名的实现方法(例如:成绩排名)
sqlserver和oracle中对datetime进行条件查询的一点区别小结
在SQL Server和Oracle中创建job
Linux下 mysql oracle 简单使用手册
sql小计汇总 rollup用法实例分析
连续序号的 sql语句
SQLServer与Access常用SQL函数区别
JDBC 数据库常用连接 链接字符串

数据库技巧 中的 SQL嵌套查询总结


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 79 ::
收藏到网摘: n/a

这是我写的一个结合UINON的嵌套查询. 将五个方面的报表放到一个临时表里,再从临时表里,将所要的数据查询出来. IT也有一段时间了,刚开始的时候``````
的困难主要是在编程语言上,数组,逻辑,算法,...
这些都过来了之后,困难就上升到数据库设计上了.
以及数据逻辑.
一个优秀的系统,会集成优秀的程序和优秀的数据库设计.
要做到这点得有足够的经验.
这是我写的一个结合UINON的嵌套查询.
将五个方面的报表放到一个临时表里,再从临时表里,将所要的数据查询出来.
复制代码 代码如下:

$sql="SELECT type , sum( yjsl ) as yjsl , sum( yysl ) as yysl, sum( jyrs ) as jyrs, sum( jycs ) as jycs
FROM (
SELECT c.mc AS
TYPE , count( d.lsh ) AS yjsl, 0 AS yysl, 0 AS jyrs, 0 AS jycs
FROM sys_dzxxb AS b, sys_jcb AS c, sys_dzyjb AS d
WHERE b.bm = c.lsh
AND d.dzlsh = b.lsh
GROUP BY c.mc
UNION SELECT c.mc AS
TYPE , 0 AS yjsl, count( e.lsh ) AS yysl, 0 AS jyrs, 0 AS jycs
FROM sys_dzxxb AS b, sys_jcb AS c, sys_dzyy AS e
WHERE b.bm = c.lsh
AND e.dzlsh = b.lsh
GROUP BY c.mc
UNION SELECT c.mc AS
TYPE , 0 AS yjsl, 0 AS yysl, count( DISTINCT e.dzlsh ) AS jyrs, 0 AS jycs
FROM sys_dzxxb AS b, sys_jcb AS c, sys_ltxxb AS e
WHERE b.bm = c.lsh
AND e.dzlsh = b.lsh
GROUP BY c.mc
UNION SELECT c.mc AS
TYPE , 0 AS yjsl, 0 AS yysl, 0 AS jyrs, count( DISTINCT e.lsh ) AS jycs
FROM sys_dzxxb AS b, sys_jcb AS c, sys_ltxxb AS e
WHERE b.bm = c.lsh
AND e.dzlsh = b.lsh
GROUP BY c.mc
) AS temptable
GROUP BY TYPE ";

分享给大家.