显示所有数据并从其他表的每一行计数

时间:2019-04-25 05:37:22

标签: mysql sql

我想根据表.的每个ID显示表+的数据和return '<font color="red> '. $item->stock_qty .'</font>';的计数
表格

assignee

我想在此显示task_assignee表中的所有受让人以及assignee表中针对每个受让人的计数

所需结果

assignee
id | name
1    Assignee 1
2    Assignee 2


task_assignee
id | task_id | assignee_id
1       1          1

我已经尝试过该查询

assignee

但是它显示了语法错误

  

1054-“字段列表”中的未知列“ p.id”

2 个答案:

答案 0 :(得分:1)

使用左联接并计数

SELECT  p.name, COUNT(task_id)
FROM   assignee p left join task_assignee v
on     p.id=v.assignee_id

在您的查询中,您错过了表的别名

SELECT  p.name,
    (
    SELECT  COUNT(*)
    FROM    task_assignee v
    WHERE   v.assignee_id = p.id
    ) as cnt
FROM    assignee p

答案 1 :(得分:1)

尝试一下:

;With AssigneeCount as (
Select assignee_id,Count(*) count 
From task_assignee
Group By assignee_id) 
Select a.name,ISNULL(ac.count,0) count 
    from assignee a 
      Left Join AssigneeCount ac on a.id = ac.assignee_id