在MYSQL中获取关系2表

niwlg2el  于 2023-01-16  发布在  Mysql
关注(0)|答案(1)|浏览(100)

我有以下表格:

  • 项目(id)
  • 项目(项目标识)
  • 备注(项目ID)

我想:
1.计算项目中的所有项
1.计算项目中的所有注解。
对于#1,我正在执行以下操作:

SELECT 
    p.*,
    (SELECT COUNT(*) FROM items WHERE project_id=p.id) items_count,
FROM projects p

但是我不知道如何更深入一层去计算评论。任何帮助都将不胜感激。

pbpqsu0x

pbpqsu0x1#

假设idprojects的主键,并且itemscomments都有主键,例如id,您可以执行projects到其他表的LEFT联接并聚合:

SELECT p.*,
       COUNT(DISTINCT i.id) items_count,
       COUNT(c.id) comments_count
FROM projects p
LEFT JOIN items i ON i.project_id = p.id
LEFT JOIN comments c ON c.item_id = i.id
GROUP BY p.id;

参见简化的demo

相关问题