Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从多个相关表获取关系数据_Mysql_Select_Join_Relational - Fatal编程技术网

Mysql 从多个相关表获取关系数据

Mysql 从多个相关表获取关系数据,mysql,select,join,relational,Mysql,Select,Join,Relational,我正在为一个小游戏开发一个数据库结构,这个游戏使用“工具包”,就像盔甲套装一样。目前我有4张桌子:“装备”、“装备护甲”、“装备物品”和“装备物品附魔”。 “装备”表保存装备的id及其名称,“装备盔甲”表保存装备的盔甲,“装备盔甲”表保存“装备盔甲”列可以指向的装备,“装备盔甲”表保存特定装备的附加附魔数据 现在我一直在尝试查询,我们搜索堆栈溢出和重置internet来编写一个查询,该查询将从数据库中获取所有工具包信息,不幸的是,没有任何结果 这是表结构: mysql> describe

我正在为一个小游戏开发一个数据库结构,这个游戏使用“工具包”,就像盔甲套装一样。目前我有4张桌子:“装备”、“装备护甲”、“装备物品”和“装备物品附魔”。 “装备”表保存装备的id及其名称,“装备盔甲”表保存装备的盔甲,“装备盔甲”表保存“装备盔甲”列可以指向的装备,“装备盔甲”表保存特定装备的附加附魔数据

现在我一直在尝试查询,我们搜索堆栈溢出和重置internet来编写一个查询,该查询将从数据库中获取所有工具包信息,不幸的是,没有任何结果

这是表结构:

mysql> describe kit;
+----------+-----------------+------+-----+---------+----------------+
| Field    | Type            | Null | Key | Default | Extra          |
+----------+-----------------+------+-----+---------+----------------+
| kit_id   | int(4) unsigned | NO   | PRI | NULL    | auto_increment |
| kit_name | varchar(32)     | NO   | UNI | NULL    |                |
+----------+-----------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)

mysql> describe kit_armor;
+------------+-----------------+------+-----+---------+-------+
| Field      | Type            | Null | Key | Default | Extra |
+------------+-----------------+------+-----+---------+-------+
| kit_id     | int(4) unsigned | NO   | PRI | NULL    |       |
| helmet     | int(4) unsigned | YES  | MUL | NULL    |       |
| chestplate | int(4) unsigned | YES  | MUL | NULL    |       |
| leggings   | int(4) unsigned | YES  | MUL | NULL    |       |
| boots      | int(4) unsigned | YES  | MUL | NULL    |       |
+------------+-----------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

mysql> describe kit_item;
+------------+-----------------+------+-----+---------+----------------+
| Field      | Type            | Null | Key | Default | Extra          |
+------------+-----------------+------+-----+---------+----------------+
| id         | int(4) unsigned | NO   | PRI | NULL    | auto_increment |
| item_id    | int(4) unsigned | NO   |     | NULL    |                |
| stack_size | int(4) unsigned | NO   |     | NULL    |                |
+------------+-----------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)

mysql> describe kit_item_enchantment;
+----------------+-----------------+------+-----+---------+-------+
| Field          | Type            | Null | Key | Default | Extra |
+----------------+-----------------+------+-----+---------+-------+
| item_id        | int(4) unsigned | NO   | PRI | NULL    |       |
| enchantment_id | int(4) unsigned | NO   |     | NULL    |       |
| tier           | int(4) unsigned | NO   |     | NULL    |       |
+----------------+-----------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
和参考列:

+---------------------------+--------------------+-------------------------------+-----------------
| TABLE_NAME                | COLUMN_NAME        | REFERENCED_TABLE_NAME | REFERENCED_COLUMN_NAME |
+---------------------------+--------------------+-------------------------------+-----------------
| kit_armor                 | kit_id             | kit                   | kit_id                 |
| kit_armor                 | helmet             | kit_item              | id                     |
| kit_armor                 | chestplate         | kit_item              | id                     |
| kit_armor                 | leggings           | kit_item              | id                     |
| kit_armor                 | boots              | kit_item              | id                     |
| kit_item_enchantment      | item_id            | kit_item              | id                     |
我的问题是,获取所有工具包信息的最佳方式是什么,是否可以在单个查询(联接?)中实现,还是必须将其拆分为多个查询

这对我很有帮助,我从昨天开始就一直在努力解决这个问题,同时我也做了很多研究,寻找从数据库中选择关系数据的最佳方法,我只遇到了非常复杂的指南和查询,它们令人难以置信地困惑

提前感谢,


Jonas

所有这些表之间似乎都有连接,因此可以将3个表连接在一起,这是获得结果的最佳性能方式。是的,您可以为此编写单个查询。如果没有你预期的结果,我什么也说不出来……@Tilt你能告诉我正确的方向吗?我一直在处理不同的join和多个select查询,但我无法以一种能够正确解析数据的方式获取数据。例如,我想知道头盔、胸罩、护腿和靴子的套件项目值,它们的值应该为NULL,而不是NULL(因此我知道这个套件不需要头盔)。