程序架构探讨—001 查询语句中多段select语句的方案

原创 2015年11月18日 11:48:07

有时候,我们需要做多条件查询,多个条件为“或”的关系,分类查询等,一般会用到多段select语句,然后用union或者union all进行连接,进而查出需要的结果。
例如,
select
a.id as id,
a.name as name,
a.age as age
from scama.table_name2 a
where 1=1

union all

select
b.sn as id,
b.name as name,
b.age as age
from scama.table_name2 b
where 1=2

union all

select
c.serial_id as id,
c.name as name,
c.age as age
from scama.table_name3 c
where 1=3
;
此时程序实现时,存在不少的麻烦。例如,大段的相似的sql容易出错,后续的维护的不方便,以及如果程序拼接了sql后传递给数据库执行带来的性能问题等等。
那么如何进行更好的改进实现呢?
方式有很多,博主根据自己的经验提供如下两种方案可供参考。
1、将各段查询语句,分开调用
将每段select单独写方法调用,最后再将每个调用的结果汇总为结果。
例如,
datatable dt1= 调用第一段的sql的结果;
datatable dt2= 调用第二段的sql的结果;
...
依次查询完成,最后合并dt1,dt2....
这种方案针对前台程序将sql拼接为字符串,通过程序本身框架内实现的与数据库的连接方式,执行sql语句。

2、后台完成,将查询的结果写入临时表或者中间表,直接查询该表的结果
即,使用存储过程或者函数,将需要查询的多条sql语句插入至一张临时表(物理表也可),然后返回结果。
这种方式,因为是在数据库中完成,那么有些需要查询的字段,就可以单独写语句查询出来再赋值给当前结果。


 

版权声明:本文为博主原创文章,未经博主允许不得转载。

select查询语句

SELECT 语句的基本格式为: SELECT 要查询的列名 FROM 表名字 WHERE 限制条件; 如果要查询表的所有内容,则把 要查询的列名 用一个星号 * 号表示(实验2、3中都已经...
  • jijerry
  • jijerry
  • 2017年04月26日 13:08
  • 1223

JPA查询语句

JPQL就是一种查询语言,具有与SQL 相类似的特征,JPQL是完全面向对象的,具备继承、多态和关联等特性,和hibernate HQL很相似。   查询语句的参数 JPQL语句支持...
  • vickyfei
  • vickyfei
  • 2012年03月05日 14:04
  • 2725

DB2数据库(Database)常用SQL查询(SELECT语句)命令

本文用[xxxxxx]表示一个变量在使用时需要用实际的数据进行替换 #一个最简单查询语句select * from [tablename] #带条件的查询语句select * from [tablen...
  • huoyin
  • huoyin
  • 2009年02月06日 16:47
  • 5962

mysql SQL Select 语句 简单应用

一、SQL 简介1. 什么是 SQL?SQL 指结构化查询语言 SQL 使我们有能力访问数据库 SQL 是一种 ANSI 的标准计算机语言 2. SQL 能做什么?SQL 面向数据库执行查询 SQL ...
  • hanshileiai
  • hanshileiai
  • 2015年09月04日 23:40
  • 946

mysql嵌套语句查询

嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。 ...
  • u012129558
  • u012129558
  • 2016年08月29日 11:32
  • 6902

asp.net(c#)同时执行多个select语句

        Hashtable hs = new Hashtable();        int j = 0;        SqlConnection con = Infcon.create()...
  • bydxyj
  • bydxyj
  • 2008年12月18日 08:52
  • 1983

mybatis 查询select语句

还是以用户模块为例 首先要配置一个返回的结果集   id="userMap">                                           ...
  • xiaoxiaofang123
  • xiaoxiaofang123
  • 2012年10月20日 10:11
  • 484

mysql数据库的select单表查询语句

SELECT单表查询1. 添加查询数据//先创建3个表,具有如下属性 create table DEPT ( deptno INT(2) zerofill not null, dname V...
  • men_wen
  • men_wen
  • 2017年02月22日 11:10
  • 897

select语句(5)--多表查询

多表查询,又称表联合查询,即一条sql语句涉及到的表有多张,数据通过特定的连接进行联合显示. 一、笛卡尔积 在数学中,两个集合X和Y的笛卡尓积(Cartesian product)...
  • suwu150
  • suwu150
  • 2016年09月17日 01:11
  • 934

MySql数据库基本select查询语句练习题,初学者易懂。

MySQL数据库的基本查询语句题目:
  • SoWhatWorld
  • SoWhatWorld
  • 2017年08月24日 10:14
  • 407
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:程序架构探讨—001 查询语句中多段select语句的方案
举报原因:
原因补充:

(最多只允许输入30个字)