0

我需要一些帮助 问:最好在 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( * ) 
4

1 回答 1

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 的已使用行数。

在此处查看小提琴。

于 2013-04-28T20:10:38.653 回答