“轻松”实现一次查询多表
2013-05-12 13:51
274 查看
机房收费系统中有几个地方都是要反映学生的当前余额的问题,余额涉及到相同卡编号的消费金额、注册金额以及充值时的金额,这三种金额都放在三个地方,如果单独获得,在B层就要三个方法。如果将这三种金额放在同一个地方,就要多建一个表。如何在不增加表,又只通过一个方法能一次性将三种金额都查询出来呢 ?
其实这就涉及到SQL语句的写法。
Select Sum(表1.字段),Sum(表2.字段),Sum(表3.字段),From 表1 Cross Join 表2 Cross Join 表3 Where(表1.字段=表2.字段 And 表2.字段=表3.字段 and 表1.字段=查询的参数)
例如:
Select Sum(OutLineInfo.ConsumeCash),Sum(ReChargeInfo.AddMoney),Sum(StudentInfo.Cash) From OutLineInfo Cross Join ReChargeInfoCross Join StudentInfo where(StudentInfo.CardNo = ReChargeInfo.CardNo
And ReChargeInfo.CardNo = outlineinfo.CardNo And StudentInfo.CardNo=@CardNo)
这样就能一次性查询出多个表中需要寻找的参数
总结:
就这么一个小小的问题,也曾让我想了好久,查找了许多资料才弄出来,想想是为什么?SQL知识我们已经很早以前就学过了,但学到的也只是皮毛,当时在听得时候也只知道个大概与可能,对SQL总体印象也只是增删改查,但具体怎么做,却并不知道,这就需要我在以后的学习中加深对SQL知识的学习,不局限于皮毛。
另外思维逻辑与寻找知识的关键点也至关重要,就像这个问题,我开始想到的方法是重新将有关钱(包括这三个字段)建立一个表,如果这样,得增加各个层的代码,也要修改UML图;做了一点,让我越做越觉得麻烦,才寻求简单方法。用视图,视图建立起来,却达不到我想要的效果,再另寻方法,查书本,上网搜寻,在偶然中看到一个SQL语句,经过反复试验,修改才打到此目的。如果从一开始我就想到重新多建一张表比较麻烦,就不会再将时间花在写这部分代码上了。
但没有开始的失败又怎么有现在的成功呢?不管怎样,我都学到了。。。。
其实这就涉及到SQL语句的写法。
Select Sum(表1.字段),Sum(表2.字段),Sum(表3.字段),From 表1 Cross Join 表2 Cross Join 表3 Where(表1.字段=表2.字段 And 表2.字段=表3.字段 and 表1.字段=查询的参数)
例如:
Select Sum(OutLineInfo.ConsumeCash),Sum(ReChargeInfo.AddMoney),Sum(StudentInfo.Cash) From OutLineInfo Cross Join ReChargeInfoCross Join StudentInfo where(StudentInfo.CardNo = ReChargeInfo.CardNo
And ReChargeInfo.CardNo = outlineinfo.CardNo And StudentInfo.CardNo=@CardNo)
这样就能一次性查询出多个表中需要寻找的参数
总结:
就这么一个小小的问题,也曾让我想了好久,查找了许多资料才弄出来,想想是为什么?SQL知识我们已经很早以前就学过了,但学到的也只是皮毛,当时在听得时候也只知道个大概与可能,对SQL总体印象也只是增删改查,但具体怎么做,却并不知道,这就需要我在以后的学习中加深对SQL知识的学习,不局限于皮毛。
另外思维逻辑与寻找知识的关键点也至关重要,就像这个问题,我开始想到的方法是重新将有关钱(包括这三个字段)建立一个表,如果这样,得增加各个层的代码,也要修改UML图;做了一点,让我越做越觉得麻烦,才寻求简单方法。用视图,视图建立起来,却达不到我想要的效果,再另寻方法,查书本,上网搜寻,在偶然中看到一个SQL语句,经过反复试验,修改才打到此目的。如果从一开始我就想到重新多建一张表比较麻烦,就不会再将时间花在写这部分代码上了。
但没有开始的失败又怎么有现在的成功呢?不管怎样,我都学到了。。。。
相关文章推荐
- 字段方法“轻松”实现一次查询多表
- Android上实现一个简单的天气预报APP(十一) Preference存储最近一次查询的城市
- 传参轻松实现组合查询---机房个人版
- 使用Hibernate criteria进行分页查询时,如何实现一次查询取得总记录数和分页后结果集
- 利用javabean轻松实现对数据库的连接、查询以及增删改
- 轻松实现网络压缩包的“透明”查询
- 教你优化MySQL查询语句,实现高效分页,轻松响应60W请求
- c#一次数据库查询,JS实现内容分页
- [java]一次for循环实现查询有序数组中所有重复的元素
- Mybatis实现【4】-查询解析(一次SQL查询的源码分析)
- 利用javabean轻松实现对数据库的连接、查询以及增删改
- php只查询一次数据库分类表,实现无限极分类
- c#一次数据库查询,JS实现内容分页
- 利用javabean轻松实现对数据库的连接、查询以及增删改!------使用范例
- 轻松实现网络压缩包的“透明”查询
- 【原创】GSM手机轻松实现定位 (由基站地址码及ID查询数据库)
- ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(七) 之 历史记录查询(时间,关键字,图片,文件),关键字高亮显示。
- mysql游标实现时当内部查询有一次未查询到结果时就自动退出循环解决办法
- 微内核流程引擎(IVR导航)的设计与实现(一)——在一次尝试后的优化
- SQL实现单字段 分段查询