计数不正确的mySQL JOIN语句

计数不正确的mySQL JOIN语句,mysql,Mysql,我试图编写一个mySQL语句,它从一个表中选择数据,但在特定字段中使用匹配的ID统计另一个表中的条目 这两个表是作业和作业卡。一个作业始终是一个具有多个作业卡的条目,因此我需要编写一个单数语句,从作业表中选择数据,但在结果中添加另一个字段,该字段是所有相关作业卡的计数 例如: 作业表格: | ID | customer | status | date_added | |----------------------------------------| | 1 | 3

我试图编写一个mySQL语句,它从一个表中选择数据,但在特定字段中使用匹配的ID统计另一个表中的条目

这两个表是
作业
作业卡
。一个作业始终是一个具有多个作业卡的条目,因此我需要编写一个单数语句,从作业表中选择数据,但在结果中添加另一个字段,该字段是所有相关作业卡的计数

例如:

作业
表格:

|  ID  |  customer | status | date_added |
|----------------------------------------|
|   1  |     3     | active | 2017-10-10 |
------------------------------------------
job\u cards
表有点复杂,但包含一个名为
job\u 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\u cards
表中的卡片总数,而不管它们分配给哪个作业。不仅如此,它还只返回一个结果,即使此时
jobs
表中有4个条目

有没有办法用一条语句来完成我需要做的事情

编辑:

作业卡表中的示例数据:

|  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。

您可以尝试以下方法:

SELECT *, (select count(*)
           from job_cards jc
           where jc.job_id=j.id) as card_count 
FROM jobs j

使用distinct COUNT(distinct jc.id)您已错过GROUPBY子句。请发布更多的样本数据和预期结果。这将对我们有很大帮助。