2010-04-05 126 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

相關問題