我的问题涉及我在游戏中写的游戏,badguys的身体和硬币在地面的特定x,y坐标处落在地面上,当一组物品在瓷砖上时游戏将会显示一个宝藏图标。重要的是,我计算多少,所以当玩家拿起它时,如果玩家全部拿走它们将被删除。还有其他方法可以做到这一点,但我使用的方法很适合我的应用程序。
所以我需要在字段x,y,land上加入3个表,并计算每个组合的出现次数,并将硬币存储为其值,这样我想计算每个硬币(换句话说,增加值来计算)所以我有如下表格 在所有表格posx,posy,land are grounped as 表名:game_coins 字段:posx,posy,land,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
我可以增加计数后缀的值,但我不能让左连接正确。
答案 0 :(得分:2)
这不是JOIN
。并不是每个game_item
都与一组特定的game_corpses
相关联;它只是你计算的两套东西。
UNION
可能更合适:
SELECT COUNT(1) FROM
(
SELECT * FROM game_items WHERE ...
UNION
SELECT * FROM game_corpses WHERE ...
)
根据您正在做多少事情,您可以将这两个表合并为一个表格,表明它是一个项目还是一个尸体,从而使您受益。