+ -
当前位置:首页 → 问答吧 → mysql 查询语句

mysql 查询语句

时间:2011-08-23

来源:互联网

请问下高手。。有没有办法能够将三条语句写成一条语句 查询出结果

SELECT COUNT(UserId) FROM User
WHERE CreateDate BETWEEN _StartTime AND _EndTime;
   
SELECT COUNT(UserId) FROM User
WHERE Email <> '' AND CreateDate BETWEEN _StartTime AND _EndTime;
   
SELECT COUNT(UserId) FROM User
WHERE Email <> '' AND IsEmailVerified = 1 AND CreateDate BETWEEN _StartTime AND _EndTime;

作者: lho123   发布时间: 2011-08-23

SELECT COUNT(UserId) FROM User
WHERE CreateDate BETWEEN _StartTime AND _EndTime
union all  
SELECT COUNT(UserId) FROM User
WHERE Email <> '' AND CreateDate BETWEEN _StartTime AND _EndTime
union all
SELECT COUNT(UserId) FROM User
WHERE Email <> '' AND IsEmailVerified = 1 AND CreateDate BETWEEN _StartTime AND _EndTime;

作者: ACMAIN_CHM   发布时间: 2011-08-23

同意楼上的

作者: JZF2050   发布时间: 2011-08-23

引用 1 楼 acmain_chm 的回复:
SELECT COUNT(UserId) FROM User
WHERE CreateDate BETWEEN _StartTime AND _EndTime
union all
SELECT COUNT(UserId) FROM User
WHERE Email <> '' AND CreateDate BETWEEN _StartTime AND _EndTime
union a……

作者: rucypli   发布时间: 2011-08-23

恩 不好意思 刚刚中午去吃饭了 呵呵 是我没说清楚,ACMAIN_CHM大神写的语句我知道 呵呵 但是不是我想要的效果。。我是打算把语句写到存储过程里的 所以想返回的是三个字段而不是一个集合。。
类似于 select a,b,c from table; 直接取得a,b,c三个参数。
select 
(
(select COUNT(UserId) From User WHERE CreateDate BETWEEN '1999-0-0' AND '2012-0-0') ,
(SELECT COUNT(UserId) FROM User WHERE Email <> '' AND CreateDate BETWEEN '1999-0-0' AND '2012-0-0'),
(SELECT COUNT(UserId) FROM User WHERE Email <> '' AND IsEmailVerified = 1 AND CreateDate BETWEEN '1999-0-0' AND '2012-0-0')
);

我原本打算这样写的,不过报错了。哎 请大神在帮帮忙吧 帮我看看改如何去改。。

作者: lho123   发布时间: 2011-08-23