查询哪些重复某些行

时间:2018-04-11 19:27:46

标签: mysql sql database

我有一个看起来像这样的数据库,我想检索一些数据: enter image description here

当我进行查询以检索所有内容时,我收到了这样的回复:

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'中的数据是:

enter image description here

所以我真的不明白为什么我有重复的数据。当你看到我得到的回复时,每个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 

1 个答案:

答案 0 :(得分:0)

我通过隐藏带有WHERE子句的重复行解决了我的问题:

AND ES.id_equipement = OS.id_equipement OR OS.id_equipement IS NULL

这样,所有重复的行就会消失。