我正在嘗試編寫一個mySQL語句,用於從一個表中選擇數據,但計算來自另一個表中具有匹配ID的條目的特定字段中的條目。mySQL JOIN語句與COUNT不正確匹配
這兩個表格是jobs
和job_cards
。一份工作將始終是一張單獨的條目,其中包含多張工作卡片,所以我需要編寫一份單據,從工作表格中選擇數據,但在結果中添加另一個字段,這是所有相關工作卡片的計數。
實施例:
jobs
表:
| ID | customer | status | date_added |
|----------------------------------------|
| 1 | 3 | active | 2017-10-10 |
------------------------------------------
job_cards
表是有點更復雜,但它包括一個稱爲job_id
柱將在這種情況下是1。但讓我們說有3張牌分配給上述工作。我寫了下面的語句:
SELECT j.*, COUNT(jc.id) AS card_count FROM jobs j LEFT JOIN job_cards jc ON j.id = jc.job_id
但數列只返回牌總數的job_cards
表,不管他們被分配到工作。不僅如此,即使此時jobs
表中有4個條目,它也只返回單個結果。
有沒有辦法做我需要做的一個單一的陳述?
編輯:從job_cards表
的樣本數據:
| ID | job_id | customer | description | materials | notes |
|--------------------------------------------------------------|
| 1 | 1 | 3 | blah blah | none | test |
| 2 | 1 | 3 | something | pipes | n/a |
----------------------------------------------------------------
我希望得到的結果是:
| ID | customer | date_added | card_count |
|-------------------------------------------|
| 1 | 3 | 2017-10-10 | 2 |
---------------------------------------------
如果這裏的ID是的ID工作。
使用不同的** COUNT(不同jc.id)** –
。請張貼更多樣本數據和預期結果。這會幫助我們很多。 –