2015-11-09 87 views
1

我只想知道prod與表emp中的id有多少聯繫,我無法找到。我想獲得所有的emp字段+ totalProducts字段與帶有id的鏈接行數,所以我該怎麼做?我正在嘗試此操作並且無法正常工作:第二張表加入+計數

select emp.*, 
     COUNT(prod.*) AS totalProducts 
from emp_fin emp 
     JOIN product2 prod on emp.id = prod.id_emp group by emp.id; 

出現如下錯誤:您的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,以在'*)附近使用正確的語法...

謝謝大家!

+0

我想你只是想'count(*)'。 'count(*)'不能使用別名。 –

+0

但確實計數(*)知道我的意思是prod表嗎? –

回答

1

,如果你想指望所有在prod記錄中,選擇腳趾prod表的id_emp(或另一個notnull字段)來對它們進行計數。

SELECT 
    emp.*, 
    COUNT(prod.id_emp) AS totalProducts 
FROM emp_fin emp 
LEFT OUTER JOIN product2 prod 
    on emp.id= prod.id_emp 
group by emp.id 
+2

儘管這段代碼可以解決這個問題,[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)真的有助於提高你的文章的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – gunr2171

2

不要count(*)使用別名:

select emp.*, COUNT(*) AS totalProducts 
from emp_fin emp JOIN 
    product2 prod 
    on emp.id = prod.id_emp 
group by emp.id; 

如果你想包括環境管理計劃,無產品,使用left join,做這樣的計數:

select emp.*, count(prod.id_emp) AS totalProducts 
from emp_fin emp left join 
    product2 prod 
    on emp.id = prod.id_emp 
group by emp.id; 
+0

upvote for be two seconds faster :-) – silly

相關問題