2014-11-01 78 views
0

选择电子邮件,从过期的成员到期=(选择ifnull(电子邮件,电话)作为'联系'成员,其中过期> ='2008'和到期< ='2009');不止一个子查询返回

我得到多个子查询返回。任何帮助?

我试图回答这个问题:

我们需要用,我们要使用电子邮件作为联系的主要手段,其有效期是2008年我们的会员取得联系;但是,如果电子邮件地址不可用,我们想知道他们的电话号码。

+0

为什么你有一个子查询呢?从过期> ='2008'和到期<='2009''的成员选择ifnull(电子邮件,电话)为'联系人'有什么问题? – kba 2014-11-01 00:48:04

+0

完美的工作,谢谢! – Victor 2014-11-01 00:50:44

+0

@kba,发布这个答案是什么错误? – Rahul 2014-11-01 00:52:55

回答

0

用于代替=在这种情况下。

select email, expiration 
from member 
where expiration in (select ifnull(email, phone) as 'Contact' from member where expiration >= '2008' and expiration <='2009'); 

但是这也行不通。因为您尝试将过期时间与电子邮件或电话进行比较。

正确的查询应该是这样的:

select ifnull(email, phone) as 'Contact', expiration 
from member 
where expiration >= '2008' and expiration <='2009';