我需要一些帮助 问:最好在1个查询中获取项目的总剩余空间
Grops, items
Group can contain only MaxAllowed items
Groups table
(ID, MAXAllowerdItems)
Items
(ID, Group_ID, Name)
这不是正确的查询,而是起点
select SUM(g.MaxAllowedItems - count(*)),
from FROM items i, Groups g
where g.ID=i.Group_ID
GROUP BY i.Group_ID
HAVING g.MaxAllowedItems > count( * )
答案 0 :(得分:1)
我认为你需要这样的东西:
SELECT
groups.ID,
MAX(MAXAllowerdItems) - COUNT(items.Group_ID) as remaining_spaces
FROM
groups LEFT JOIN items
ON groups.ID = items.Group_ID
GROUP BY
groups.ID
HAVING
remaining_spaces > 0
MAX(MAXAllowerdItems)
将始终具有相同的MAXAllowerdItems值,COUNT(items.Group_ID)
将是该组ID的已使用行数。
请参阅小提琴here。