连接 2 个表并根据其关联 ID 重复显示同一列
Posted
技术标签:
【中文标题】连接 2 个表并根据其关联 ID 重复显示同一列【英文标题】:Joining 2 Tables and show the same column repeatedly based on its associative ID 【发布时间】:2013-05-16 01:16:20 【问题描述】:您好,我不知道如何用简短的句子表达,但我有如下的数据库表
用户表
user_id 用户名 等等……物品
item_id item_nameItem_Equipped
equipped_id 头部(FK 到 item_id) 手(FK 到 item_id) user_id(FK 到用户表中的 user_id)我想生成一个显示如下格式的查询
user_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)
【问题讨论】:
你想要的输出中的 head 和 head_item_id 有什么不同吗? @pratikgarg head(是 Item_Equipped 表中的一列)而 head_item_id 是 Item 表中的一列,它们都是指同一个值的必要条件。事实上,我只是编辑我的帖子以避免混淆。谢谢.. 【参考方案1】:您需要将 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
【讨论】:
以上是关于连接 2 个表并根据其关联 ID 重复显示同一列的主要内容,如果未能解决你的问题,请参考以下文章