2017-09-15 106 views
-1

我有2個表,我在一個表中保存了entrys。例如,我提供智能手機的條目。

在每個條目上都可能有更多問題。比如像客戶和供應商聊天。
將此問題保存在第二個表中。每個問題都會得到「入口ID」。

現在我想獲得所有entrys並將每個條目的所有問題計爲單個值。
例如
計數從第二個表連接到ID的所有行,並在第一個表的右側添加值

id |title  | desc     | questionscount 
1 |samsung s7.. | smartphone bla bla | 11 
2 |samsung s6.. | bla bla bla   | 5 
3 |samsung s5.. | bla bla    | 0 

我簡化我的SQL,我想我真的非常接近:

SELECT 
    e.id, e.uid, e.tmstmp, e.title, e.desc, questioncount 
FROM 
    entrys e 

INNER JOIN 
    (
     SELECT eid, COUNT(id) as questioncount 
     FROM question 
     WHERE eid = e.id 
) q 

- >未知列在 'where子句'

'e.id'

我試圖內部加入他們與「開」像:

ON q.eid = e.id 

但像這樣,不是所有行都被選中,並且questioncount從所有問題中獲取值,而不管eid = e.id.

+1

使用子查詢,或者使用group by by join。 – RRK

回答

1

選擇計數作爲一個子查詢

SELECT e.id, e.uid, e.tmstmp, e.title, e.desc, 
(SELECT COUNT(q.id) FROM question q WHERE q.eid = e.id) AS questioncount 
FROM entrys e 
+0

正是我搜索了很多=) – delato468

3

使用左連接,因此從entrys返回所有行的每個條目是否有問題或不。

SELECT 
    e.id, e.uid, e.tmstmp, e.title, e.desc, COUNT(q.id) questioncount 
FROM 
    entrys e 
LEFT JOIN question q on e.id = q.eid 
GROUP BY e.id 
相關問題