2010-04-05 124 views
0

我试图做多计数大家正在接受第一子选择(列表1)我得到的,上面写着“操作数应包含1列(或多个)错误“我猜它与AND有关,但我不确定我会如何解决这个问题。MySQL的计数语句错误 - 操作数应包含1列(S)

Select Count(list0.ustatus) AS finished_count 
     , (Select list1.ustatus, Count(*) 
       From listofupdates list1 
      Where list1.ustarted != '0000-00-00 00:00:00' 
       AND list1.ustatus != 1 
      ) AS start_count 
     , (Select Count(list2.udifficulty) 
       From listofupdates list2 
      Where list2.udifficulty = 2 
      ) AS recheck_count 
     , (Select Count(list3.udifficulty) 
       From listofupdates list3 
       Where list3.udifficulty = 4 
      ) AS question_count 
    From listofupdates as list0 
    Where list0.ustatus = 1 
+0

我认为你试图在这个查询中过于聪明。你为什么不使用** union **声明和** ** **来提取你需要的信息? – lexu 2010-04-05 06:40:51

回答

2

我完全@Chad桦木

aggree以下查询应该工作。

Select Count(list0.ustatus) AS finished_count 
     , (Select Count(*) 
       From listofupdates list1 
      Where list1.ustarted != '0000-00-00 00:00:00' 
       AND list1.ustatus != 1 
      ) AS start_count 
     , (Select Count(list2.udifficulty) 
       From listofupdates list2 
      Where list2.udifficulty = 2 
      ) AS recheck_count 
     , (Select Count(list3.udifficulty) 
       From listofupdates list3 
       Where list3.udifficulty = 4 
      ) AS question_count 
    From listofupdates as list0 
    Where list0.ustatus = 1 
+0

工作非常好,非常感谢你! – jason 2010-04-05 10:48:34

0

问题的最有可能在所述线路与

FROM listofupdates LISTX

(其中X为0,1,2,3)

这似乎是在这些情况下,只有list0,list1,list2,list3就足够了。

2

在第一个子选择中,您试图选择2列。您只需要选择一个,除非您正在对结果进行比较,否则无法重新选择多个列。

请参阅MySQL Docs - Subquery Errors

+0

不错的小费,谢谢 – jason 2010-04-05 10:49:01

相关问题