2015-06-04 174 views
0

在我的MySQL表中選擇數據時遇到了一個小問題。我有2張桌子。選擇列和匹配行

questions_table 
- id 
- name 

results_table 
- id 
- form_id 
- answer 1 
- etc. 

現在我要選擇所有有結果的形式,和form_id形式ID匹配,因爲那是他們是如何聯繫在一起的。

我得到這個:

select f.id, f.name, count(res.id) from forms f LEFT JOIN results res ON f.id = res.form_id 

但問題是,我只拿到1排出來,而我有多個結果多種形式,但只選擇了一種形式。

我到底做錯了什麼?它是LEFT JOIN聲明嗎?

回答

1

沒有group by的聚合函數將始終返回一行。您需要添加group by

select 
f.id, 
f.name, 
count(res.id) 
from forms f LEFT JOIN results res ON f.id = res.form_id 
group by f.id 
+0

感謝這就是答案,我會在幾分鐘內將其標記爲答案。 –

1

我要選擇所有具有形式導致

試試這個:(編輯:計數加)

SELECT f.id, f.name, count(res.form_id) AS cnt 
FROM forms AS f 
LEFT JOIN results AS res ON f.id = res.form_id 
WHERE res.form_id IS NOT NULL 
GROUP BY f.id 
+0

這實際上是我的問題的最佳答案,只有你沒有在查詢計數!感謝你的回答! –