2015-06-06 57 views
0
SELECT s.*,count(numeromodule) as nbrmodule from session58 s natural join module15; 

嗨,我得到這個錯誤:不是單組功能沒有一個組功能

回答

1

首先,不要用「自然join`。它使用列的名稱,這可以隨着時間的推移而改變,改變查詢所做的事情 - 並且導致它突然中斷而沒有明顯的原因。如果使用明確的外鍵關係,我的心裏會有一個更柔和的地方,但事實並非如此。第二,問題是s.*。這是另一種方法做你想要什麼:

select s.*, 
     (select count(*) from module15 m where s.col1 = m.col1 . . .) as nbrmodule 
from session58 s; 

我不知道join條件是什麼(另一個理由不使用natural join)。

此外,這將返回0計數。

where exists (select 1 from module15 m where s.col1 = m.col1 . . .) 
0

你必須列出所需的字段的group by section,例如:如果你不想讓他們,你可以使用子查詢,或者這where條款篩選出來

SELECT s.f1,s.f2,count(numeromodule) as nbrmodule 
from session58 s natural join module15 group by s.f1,s.f2;` 
+0

我沒有得到任何選擇@Dmitry Zaytsev – todo

+0

@todo在這種情況下,你有一些問題,加入你 不應該使用自然連接 首先嚐試連接表,然後添加'count' /'組by' 行'select * from session58 s join module15 n on(s.id = n.id)' –