所以,我是一名新手php / mysql开发人员,我正在尝试通过创建基于文本的游戏应用程序(一点上下文)来学习更多内容。我正在建造一个军械库,盔甲使用4张桌子。此查询的目的是向用户显示他们所配备的项目。
我希望能够从库存中选择配备用户的物品并返回物品的名称。这是我能够想到的最好的,但我似乎无法把所有东西都变成一排。任何人都可以指出我正确的方向返回两个项目的item_id及其名称?我真的很感激。
select weapons.item_id, weapons.wep_name, armor.arm_name, armor.item_id from inventory
join users on users.user_id = inventory.user_id
left join weapons on weapons.item_id = inventory.item_id
left join armor on armor.item_id = inventory.item_id
where users.user_id = 1;
答案 0 :(得分:0)
要将所有内容整合到一行,您可以使用GROUP_CONCAT()
:
SELECT GROUP_CONCAT(DISTINCT wep_name) AS weapons, GROUP_CONCAT(DISTINCT arm_name) AS armor
FROM users
JOIN inventory ON users.user_id = inventory.user_id
left join weapons on weapons.item_id = inventory.item_id
left join armor on armor.item_id = inventory.item_id
where users.user_id = 1;