我希望从我的解释中得出任何意义。我能够创建查询,但是我的查询仅适用于与容器相关的项目,并且只有在不超过一个项目相关时才有效。我真的希望任何人都可以提供帮助!
请考虑以下对象:
我有一个表,其中存储了所有对象的实例。该表使用自引用的父子结构,因此在技术上可以将Container
'置于'Person
内(仅提及,这不会发生)。
我有两个表可用于将人/物品链接到容器:
Container_Person
Container_Item
(还有一个人 / * 项目 *表)
amount
)此查询仅适用于容器的一个相关项。它不会以任何方式考虑人员......如果多个项目与容器相关,则查询将返回多个记录。
SELECT
Container.name,
Item.name,
(ifnull(Sum(Object_Instance.amount),0) / Container_Item.amount) as value
FROM
Container
Inner Join Object_Instances as Containers
ON Containers.typeid = 'container'
AND Container.containerid = Containers.typespecification
Left Outer Join Container_Item ON Container_Item.containerid = Container.containerid
Left Outer Join Item ON Item.itemid = Container_Item.itemid
Left Outer Join Object_Instance as ContainerItems
ON Item.itemid = ContainerItems.typespecification
AND ContainerItems.typeid = 'item'
AND ContainerItems.parentid = Containers.objectid
WHERE Containers.objectid = 1
GROUP BY
Container.name,
Container_Item.amount,
Item.name,
Container.containerid
答案 0 :(得分:0)
在进行复杂的连接和分组时,我经常不得不求助于这种类型的查询: