mysql查询所有的数据库中所有的表table1,table2,table3,table4,table5等很多表且表的格式是一样的,怎么用找出在某一时间d-c的值是大于一千的表的名字和data的值 , 必须是同一时间下的差 还有怎么查询相同时间间隔内连续5次这种情况呢,还有就是要多表同时查询。希望给出明确答案啊,我新手啊,谢谢 比如表table1 中存在 09:38:00 323 2342 表table1 符合条件输出表table1 和date 的值 例如这是表table1 date表示时间 字段 c ,d下面都是数值
date c d
09:35:00 245 524
09:36:00 234 42409:37:00 423 677
09:38:00 323 2342.......10:35:00 313 323
10:36:00 323 452
10:37:00 432 34210:38:00 532 344
date c d
09:35:00 245 524
09:36:00 234 42409:37:00 423 677
09:38:00 323 2342.......10:35:00 313 323
10:36:00 323 452
10:37:00 432 34210:38:00 532 344
select 'a',* from t1
union all
select 'b',* from t2union all
select 'c',* from t2
) a
where d-c>1000 and date='2011-7-28'
select 'a',* from t1
union all
select 'b',* from t2
union all
select 'c',* from t365
union all
select 'c',* from t456
) a
where d-c>1000 and date='2011-7-28'
如果是where d-c>1000,是可以的
09:35:00 245 524
09:36:00 234 42409:37:00 423 677
09:38:00 323 2342
09:39:00 333 5742
09:40:00 343 2345
09:41:00 323 2365
09:42:00 323 4642
.......10:35:00 313 323
10:36:00 323 452
10:37:00 432 34210:38:00 532 344比如说09:38:00到09:42:00这一段就是连续的五个差值大于壹仟,如果符合就找出这个表的名字,里面有好几百个表
09:35:00 245 524
09:36:00 234 42409:37:00 423 677
09:38:00 323 2342
09:39:00 333 5742
09:40:00 343 2345
09:41:00 323 2365
09:42:00 323 4642
.......10:35:00 313 323
10:36:00 323 452
10:37:00 432 34210:38:00 532 344table2date c d
09:35:00 245 524
09:36:00 234 42409:37:00 423 677
09:38:00 323 2342
09:39:00 333 5742
09:40:00 343 2345
09:41:00 323 2365
09:42:00 323 4642
.......10:35:00 313 323
10:36:00 323 452
10:37:00 432 34210:38:00 532 344比如说09:38:00到09:42:00这一段就是连续的五个差值大于壹仟,如果符合就找出这个表的名字,里面有好几百个表
DELIMITER $$USE `aa`$$DROP PROCEDURE IF EXISTS `lx`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `lx`()
BEGIN
SET @a=0;
SET @b=0;
DROP TABLE IF EXISTS qt1;
DROP TABLE IF EXISTS qt2;
DROP TABLE IF EXISTS qt3;
CREATE TABLE qt1 AS
SELECT *,@a:=@a+1 AS pm FROM tt1 a WHERE NOT EXISTS(SELECT 1 FROM tt1 WHERE TIMEDIFF(`date1`,a.`date1`)='00:01:00');
CREATE TABLE qt2 AS
SELECT *,@b:=@b+1 AS pm FROM tt1 a WHERE NOT EXISTS(SELECT 1 FROM tt1 WHERE TIMEDIFF(`date1`,a.`date1`)='-00:01:00');
SELECT b.date1,a.date1 INTO @ag,@ae FROM qt1 a INNER JOIN qt2 b ON a.pm=b.pm AND TIMEDIFF(a.`date1`,b.`date1`)>='00:05:00';
CREATE TABLE qt3 AS
SELECT *,d-c AS ce FROM tt1 WHERE date1 BETWEEN @ag AND @ae;
SELECT * FROM qt3 a WHERE EXISTS(SELECT 1 FROM tt1 WHERE TIMEDIFF(a.`date1`,`date1`)='00:01:00' AND ce>=1000);
END$$DELIMITER ;
不好意思 ,加错分了,实在是不好意思啊,别的问题给你加了