2010-09-09 122 views
1

我最後的任務太模糊了,所以我會修改它。我知道以下是不正確的SQL語法,但是您應該能夠獲得我嘗試執行的查詢的要點。計數子查詢

select id, 
     title, 
     count(select x 
       from otherTable 
      where otherTable.id = thisTable.id) as new_row 
from thisTable 

我希望這個更好解釋一下。

+1

@Camony:如果在外表中沒有匹配的行,那麼你是否仍然想顯示0作爲計數?在這種情況下,內部連接不會工作,我認爲... – 2010-09-09 03:55:15

回答

3
select tt.id, tt.title, count(ot.id) as count 
from thisTable tt 
inner join otherTable ot on ot.id = tt.id 
group by tt.id, tt.title 
+0

比冒犯更容易解決。 – 2010-09-09 02:53:40

+0

@Evan Carroll:Zee括號,zay do nuTH! :) +1 – 2010-09-09 02:59:43

+1

嘿傢伙,我仍然可以觸摸我自己的答案? )) – 2010-09-09 03:27:01

1

另一種解決方案。如果你想知道行數,而不是不同x值的數量,那麼使用count(*)而不是count(distinct x)。

select id, title, 
    (select count(distinct x) from otherTable 
    where otherTable.id = thisTable.id) as new_row 
from thisTable