0

我的问题与我在游戏项目中编写的游戏有关图标。重要的是我计算了多少,所以当玩家捡起它们时,如果玩家将它们全部拿走,它将被移除。还有其他方法可以做到这一点,但我使用的方法很适合我的应用程序。

所以我需要在字段 x、y、land 上加入 3 个表并计算每个组合的出现次数,并将硬币存储为它们的值,所以我想计算每枚硬币(换句话说,增加计数值)所以我有所有表 posx,posy,land 中的表如下表名:game_coins 字段:posx,posy,land,value <--计为 #stored in value

table name: game_items
fields: posx, posy, land, item_id   <--counts as 1


table name: game_corpses
fields: posx, posy, land, id <-- counts as 1

这是我到目前为止使用的查询,我得到一个模棱两可的错误,我知道这意味着什么,但似乎我应该能够调用具有 1 个列名的所有表,如果它们相同并且我按该列分组

SELECT  posx, posy, land, COUNT(*) as 'count' 
FROM game_itemlist  
LEFT JOIN game_corpses ON posx, posy, land  
LEFT JOIN game_coins ON posx,posy,land 
WHERE land = 'test' GROUP BY posx, posy, land

我可以增加值来计算后记,但我不能正确地得到左连接。

4

1 回答 1

2

这真的不是一个JOIN. 并不是每个game_item都与一组特定的game_corpses; 这只是你要计算的两组东西。

AUNION可能更合适:

SELECT COUNT(1) FROM
(
 SELECT * FROM game_items WHERE ...
 UNION
 SELECT * FROM game_corpses WHERE ...
)

根据您所做的工作量,您可能会受益于将这两个表格合并为一个表格,其中包含一个指示它是物品还是尸体的字段。

于 2012-07-11T14:36:17.120 回答