0

Q: できれば 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 に答える