以下是引用sh16在2013-11-1 10:41:00的发言:
就是我上面说的,有很多号码,需要在多张表(多个机房)中查询记录,不知道具体分布在哪张表中,需要在每张表中查询。每张表都不大,顶多几千条记录。分开几张表的目的是为了好管理,好区分。
数据不大的话,很好办,设计一个查询表,将这6个表的数据全部查询到一个DataTable中,然后修改你的代码,直接在DataTable中查询数据,而不是用select语句查询,这样一来,只需执行一次select语句,就是生成查询表的时候执行了一次,估计重置8500行,也就是10秒左右的时间而已。
就是我4楼回复的第二种方法:
2、如果已经是事实,你可以将这个6个表全部载入到一个表中,成为一个DataTable,在这个DataTable检索,合并多个表的select语句参考:
五、UNION 运算符
UNION运算符用于组合两个查询的结果。
例如有一个客户表,一个供应商表,我需要得到所有在中国的客户和供应商的名称和地址。
因为数据位于不同的表中,显然,我们需要用两个查询才能完成任务:
SELECT 公司名称, 地址 FROM {客户} WHERE 国家 = '中国' UNION SELECT 公司名称, 地址 FROM {供应商} WHERE 国家 = '中国'
两个查询的字段名称、个数、类型必须完全一致才行。
默认情况下,UNION会自动排除重复的行,然后你可以用ALL关键词来确保返回所有的行,例如:
SELECT 公司名称, 地址 FROM {客户} WHERE 国家 = '中国' UNION ALL SELECT 公司名称, 地址 FROM {供应商} WHERE 国家 = '中国'
[此贴子已经被作者于2013-11-1 10:45:08编辑过]