0

これは私が開発しているゲーム用です。たとえば、各プレイヤーが各手に持っている武器のIDを含むMySQLテーブルがあります。

player id, playername, rhand, lhand,
1          Guy         1      2
2          OtherGuy    3      2

ID別の各アイテムに関する情報を含むアイテムテーブルがあります

item  name   damage_type
1     hammer crush
2     shield none
3     sword  slash

サーバーで戦闘を解決するとき、ID で各プレイヤーを検索します。1 つは攻撃者で、もう 1 つは防御者です。各プレイヤーの武器名と、おそらく武器のプロパティ (上記の Damage_type) を同じ行に含む結果を返したいと思います。だから私はこのような結果が欲しい

player id playername rhand lhand   rhand_damage_type lhand_damage_type
1         Guy        hammer shield crush             none
2         OtherGuy   sword  shield slash             none
4

1 に答える 1

0
SELECT p.player_id, p.player_name, w1.name, w2.name, w1.damage_type, w2.damage_type 
FROM players p, weapons w1, weapons w2 
WHERE p.player_id = attackerId OR p.player_id=defenderId
AND p.rhand = w1.item 
AND p.lhand = w2.item

プライヤーが一方または両方の武器を見逃す可能性がある場合:

SELECT DISTINCT player_id, player_name, w1.name, w2.name, w1.damage_type, w2.damage_type 
FROM 
(SELECT player_id, player_name, name, damage_type 
 FROM players LEFT JOIN weapons on rhand = w1.item 
 WHERE p.player_id = attackerId OR p.player_id=defenderId) as w1,
(SELECT player_id, player_name, name, damage_type 
 FROM players LEFT JOIN weapons on lhand = w2.item 
 WHERE p.player_id = attackerId OR p.player_id=defenderId) as w2
 Were w1.player_id = w2.player_id
于 2012-07-14T13:55:27.087 に答える