表T1 字段1 create_date 日期类型 字段2 in_count 整数
数据:
2011/01/02 1
2011/03/02 1
2011/03/04 1
2011/03/05 3条件:2011/01/01 至 2011/03/10查询结果数据格式:
create_date in_count
2011/01/01 0
2011/01/02 1
2011/01/03 0
2011/01/04 0
2011/03/01 0
2011/03/02 1
2011/03/03 0
2011/03/04 1
2011/03/05 3
数据:
2011/01/02 1
2011/03/02 1
2011/03/04 1
2011/03/05 3条件:2011/01/01 至 2011/03/10查询结果数据格式:
create_date in_count
2011/01/01 0
2011/01/02 1
2011/01/03 0
2011/01/04 0
2011/03/01 0
2011/03/02 1
2011/03/03 0
2011/03/04 1
2011/03/05 3
然后用left join
SELECT A.RQ,IFNULL(B.in_count,0) FROM LSB A
LEFT JOIN TT B
ON A.RQ=B.create_date
WHERE A.RQ BETWEEN '2011/01/01' AND '2011/03/10'
表名,可自行修改DELIMITER $$USE `zz`$$DROP PROCEDURE IF EXISTS `rqpd`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `rqpd`()
BEGIN
DECLARE qq DATE;
SET qq='2011-1-1';
WHILE qq<='2011-12-31' DO
INSERT INTO lsb VALUES (qq);
SET qq=qq+INTERVAL 1 DAY;
END WHILE;
END$$DELIMITER ;