0

私の質問は、ゲームアイテム、悪者の体、およびアイテムのグループがタイル上にあるときに土地の特定のx、y座標で地面に落ちるコインで書いているゲームに関連しており、ゲームは宝物を表示しますアイコン。プレーヤーがそれらを拾ったときに、プレーヤーがそれらをすべて取った場合、それは削除されるので、私がそれらを数えることが重要です。これを行う方法は他にもありますが、私が使用している方法は私のアプリケーションに適しています。

したがって、フィールドx、y、landの3つのテーブルを結合し、各組み合わせの発生数をカウントする必要があります。コインは値として保存されるので、各コインをカウントしたい(つまり、カウントに値を追加したい)ので、すべてのテーブルで次のようなテーブルposx、posy、landはテーブル名として表示されます: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

後書きを数えるために値を追加することはできますが、左結合を正しく取得できません。

4

1 に答える 1

2

これは実際にはJOIN. game_itemそれぞれが特定のセットに関連しているわけではありませんgame_corpses。それはあなたが数えているものの2つのセットです。

A のUNION方が適切かもしれません。

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

これをどの程度行っているかによっては、これらの 2 つのテーブルを 1 つに統合し、それがアイテムか死体かを示すフィールドを使用することでメリットが得られる場合があります。

于 2012-07-11T14:36:17.120 に答える