0

嗨,我不知道如何用简短的句子来表达,但我有如下的 DB 表

用户表

  • 用户身份
  • 用户名
  • 等等...

物品

  • item_id
  • 项目名

Item_Equipped

  • 装备ID头(FK到item_id)
  • 手(FK 到 item_id)
  • user_id (FK to user_id IN User Table)

我想生成一个显示如下格式的查询

用户 ID | 头| head_item_name | 手| hand_item_name | ...

到目前为止,我只能这样做:

SELECT user.user_id, user.username,
        equipments.head, equipments.head_acc,
        equipments.hand,
        equipments.acc, equipments.body
FROM gw_member_equipped AS equipments
LEFT JOIN gw_member AS user ON user.memberid = equipments.member_id

哪个(我必须说实话)并没有做太多事情。

我试图在 item 和 item_equipped 之间执行 INNER JOIN 但是我无法为每个项目获取单独的名称(基于其项目 ID)

4

1 回答 1

0

您需要将 ITEM 表与 ITEM_EQUIPPED 表连接两次。

您可以使用下面的查询来查询您想要的输出列。

SELECT USER.User_Id,
       Item_Equipped.Head,
       Item_Heads.Item_Id Head_Item_Id, -- if you want you can remove this column
       Item_Heads.Item_Name Head_Item_Name,       
       Item_Equipped.Hand,
       Item_Hands.Item_Id Hand_Item_Id,  -- and this column also as these columns are same as their previous select columns
       Item_Hands.Item_Name Hand_Item_Name
  FROM USER, Item Item_Heads, Item Item_Hands, Item_Equipped
 WHERE USER.User_Id = Item_Equipped.User_Id
   AND Item_Heads.Item_Id = Item_Equipped.Head
   AND Item_Hands.Item_Id = Item_Equipped.Hand
于 2013-05-21T11:26:08.467 回答