我有一个这样的数据库,我想检索一些数据:
当我做一个查询来检索所有的东西时,我得到了这样的回答:
+----------+----------------------------------+---------------+---------------+----------+-------------+--+
| id_stats | nom_stats | id_equipement | id_equipement | id_stats | id_elements | |
+----------+----------------------------------+---------------+---------------+----------+-------------+--+
| 3 | PO | 1 | NULL | NULL | NULL | |
| 25 | Maîtrise Distance | 1 | NULL | NULL | NULL | |
| 29 | Points de Vie | 1 | NULL | NULL | NULL | |
| 33 | Résistance Élémentaire Aléatoire | 1 | NULL | NULL | NULL | |
| 12 | Esquive | 8 | NULL | NULL | NULL | |
| 13 | Tacle | 8 | NULL | NULL | NULL | |
| 15 | Parade | 8 | NULL | NULL | NULL | |
| 22 | Résistance Feu | 8 | NULL | NULL | NULL | |
| 23 | Résistance Eau | 8 | NULL | NULL | NULL | |
| 29 | Points de Vie | 8 | NULL | NULL | NULL | |
| 32 | Maîtrise Élémentaire Aléatoire | 8 | 8 | 32 | 1 | |
| 32 | Maîtrise Élémentaire Aléatoire | 8 | 15 | 32 | 1 | |
| 32 | Maîtrise Élémentaire Aléatoire | 8 | 8 | 32 | 3 | |
| 32 | Maîtrise Élémentaire Aléatoire | 8 | 15 | 32 | 3 | |
| 32 | Maîtrise Élémentaire Aléatoire | 8 | 8 | 32 | 4 | |
| 32 | Maîtrise Élémentaire Aléatoire | 8 | 15 | 32 | 4 | |
| 1 | PA | 15 | NULL | NULL | NULL | |
| 2 | PM | 15 | NULL | NULL | NULL | |
| 4 | % Coup Critique | 15 | NULL | NULL | NULL | |
| 24 | Résistance Élémentaire | 15 | NULL | NULL | NULL | |
| 27 | Maîtrise Zone | 15 | NULL | NULL | NULL | |
| 29 | Points de Vie | 15 | NULL | NULL | NULL | |
| 32 | Maîtrise Élémentaire Aléatoire | 8 | 8 | 32 | 1 | |
| 32 | Maîtrise Élémentaire Aléatoire | 8 | 15 | 32 | 1 | |
| 32 | Maîtrise Élémentaire Aléatoire | 8 | 8 | 32 | 3 | |
| 32 | Maîtrise Élémentaire Aléatoire | 8 | 15 | 32 | 3 | |
| 32 | Maîtrise Élémentaire Aléatoire | 8 | 8 | 32 | 4 | |
| 32 | Maîtrise Élémentaire Aléatoire | 8 | 15 | 32 | 4 | |
+----------+----------------------------------+---------------+---------------+----------+-------------+--+
使用此查询:
SELECT * FROM stuff S
INNER JOIN stuff_equipement ES ON S.id_stuff = ES.id_stuff
INNER JOIN equipement_stats SA ON SA.id_equipement = ES.id_equipement
INNER JOIN stats ST ON ST.id_stats = SA.id_stats
LEFT JOIN stuff_equipement_stats_elements STA ON STA.id_stats = ST.id_stats
“stuff\u equipment\u stats\u elements”中的数据是:
所以我真的不明白为什么我有重复的数据。当你看我得到的答复,我应该只有3个条目“马î特里斯é我é门泰艾尔é每个id设备的“火焰”。对于定义的“id\u设备”,我还有实体“stuff\u equipment\u stats\u elements”中的其他条目,无论id\u设备是否相同。。。
我已经尝试了其他一些查询,例如,通过以下方式更改初始查询的最后一行:
LEFT JOIN stuff_equipement_stats_elements STA ON SA.id_equipement = STA.id_equipement
但现在我有了相当多的“妈妈”î特里斯é我é门泰艾尔éatoire“但是最后4行在它们不应该存在时被填充,因为我还没有填充它们,其他重复的数据现在就被填充了。
编辑:
东西有一些装备
设备有一些统计数据
统计有一些要素,但仅限于某些统计
对于那些有元素(土、风、火、水)的科学家来说,你可以选择那些元素。
要知道一个“stuff”选择了哪些元素,你必须知道你所使用的元素、相关的设备和相关的stat,因为这只是一些stats,最后是他选择的元素,我制作了一个包含多个主键的表
id_stuff | id_equipement | id_stats | id_elements
1条答案
按热度按时间e1xvtsh31#
我通过隐藏带有where子句的重复行来解决问题:
这样,所有重复的行都会消失。