MySQL中,3个表格,需要使用ID从主表中的所有列

问题描述 投票:0回答:2

我只能假设这已经被问,我一直在寻找这里等了一个小时,可能看起来正确的它,不知道这是我的答案。请原谅我,如果是这样的话,可能我指向正确的答案也许?

我有字符在此表主表,主ID。另外两个表由char_id引用。我想拉从所有三个表匹配字符表中的ID号中的所有列。

Characters
id, col1, col2, col3

equip_profiles
id, char_id, col1, col2, col3

inventory
id, char_id, col1, col2, col3

需要的回

characters.id, characters.col1, characters.col2, characters.col3, equip_profiles.col1, equip_profiles.col2, equip_profiles.col3, inventory.col1,
inventory.col2, inventory.col3,

我当然得所有表中的几个列,只是试图让一切从使用characters.id是根ID和char_id为指针回字符的所有三个表。

请帮忙!

SELECT characters.*, equip_profiles.*, inventory.* 
FROM characters 
JOIN equip_profiles ON characters.id = equip_profiles.char_id 
JOIN inventory ON characters.id = inventory.char_id 
php mysql
2个回答
0
投票

你的表名Characters但在查询你使用它作为characters。这可能是这个问题,我也建议别名的使用情况表如下:

SELECT a.*, b.*, c.* 
FROM characters a  
FULL OUTER JOIN equip_profiles b ON a.id = b.char_id 
FULL OUTER JOIN inventory c ON a.id = c.char_id

编辑:FULL OUTER JOIN关键字返回的所有记录,当存在或左(表1)匹配或匹配条件的权利(表2)表中的记录。


0
投票

这里所有三个表包含相同的列名,如果,你必须与像其他名称指定其他两个表ID

equip_profiles.id为eqid

inventory.id相邻

或者你说你想要什么,你可以指定你的选择查询

查询可能会像

SELECT characters.*, equip_profiles.id as eqid,equip_profiles.col1, inventory.id as invid,inventory.col1
FROM characters 
JOIN equip_profiles ON characters.id = equip_profiles.char_id 
JOIN inventory ON characters.id = inventory.char_id,
© www.soinside.com 2019 - 2024. All rights reserved.