当我进行查询以检索所有内容时,我收到了这样的回复:
using System;
using Microsoft.EntityFrameworkCore;
using MySql.Data.EntityFrameworkCore;
namespace database.core
{
// this manages the connection to the database
public class C2Crayfire : DbContext
{
public DbSet<crayfire_User> crayfire_user { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseMySQL("server = <servername>; user id = <userid>; password = <password>; database = <database>");
}
}
}
使用此查询:
+----------+----------------------------------+---------------+---------------+----------+-------------+--+
| 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 | |
+----------+----------------------------------+---------------+---------------+----------+-------------+--+
'stuff_equipement_stats_elements'中的数据是:
所以我真的不明白为什么我有重复的数据。当你看到我得到的回复时,每个id_equipement我应该只有3个条目“MaîtriseÉlémentaireAléatoire”。对于定义的“id_equipement”,我还有来自实体“stuff_equipement_stats_elements”的其他条目,无论id_equipement是否相同......
我已经尝试过其他一些查询,例如通过以下方式更改初始查询的最后一行:
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
但是现在我有了很多“MaîtriseÉlémentaireAléatoire”,但是当它们不存在时,最后的4行被填充,因为我还没有填充它们,现在还有其他重复数据。
编辑:
东西有一些设备
设备有一些统计数据
统计数据有一些元素,但只适用于某些统计数据
对于拥有元素(土,风,火,水)的stastitics,你可以选择这些东西的元素。
要知道“东西”选择了哪些元素,你必须知道你所处的东西,有关的设备和有关的数据,因为它只针对某些统计数据,最后是他选择的元素,我制作了一个包含多个主键的表格
LEFT JOIN stuff_equipement_stats_elements STA ON SA.id_equipement = STA.id_equipement
答案 0 :(得分:0)
我通过隐藏带有WHERE子句的重复行解决了我的问题:
AND ES.id_equipement = OS.id_equipement OR OS.id_equipement IS NULL
这样,所有重复的行就会消失。