mysql - SQL JOIN 显示重复行

标签 mysql sql join

我有以下查询

SELECT  DCEB_Aspirantes.folio, 
Nombre,apaterno,amaterno,programa ,
DCEB_Aspirante_has_Eval_Parte1.usuario, eval1,eval2,eval3, eval4 , eval5, 
eval6 , eval7, 
res1,res2,res3, res4 , res5,res6 ,res7

 FROM DCEB_Aspirante_has_Eval_Parte1 
RIGHT JOIN DCEB_Aspirantes ON DCEB_Aspirante_has_Eval_Parte1.id_aspirante = 
DCEB_Aspirantes.id_aspirante  

JOIN
DCEB_Aspirante_has_Eval_Parte2 ON 
DCEB_Aspirante_has_Eval_Parte2.id_aspirante = DCEB_Aspirantes.id_aspirante

在 DCEB_Aspirantes 表中,我有 Nombre、apaterno、amaterno、programa

DCEB_Aspirante_has_Eval_Parte1 has eval1, eal2 , eval3 -- eval7
DCEB_Aspirante_has_Eval_Parte2 has res1, res2 ,res3 -- res7

我在 DCEB_Aspirantes(用户)中只有一个寄存器,该用户在其他 2 列中拥有广告和评估。我想要这样的结果

User -  Teacher -   eval1 - eval2 -  eval3 -eval4-  res1 -res2  res3 -res4 -res7

问题是用户有 3 名老师的评估,所以会有 3 行,我有这个结果,但不是 3 行,而是显示 9 行(同一行的 3 倍)?

这就是结果 +--------+--------+--------+--------+--------+----- --+------+------+------+

|对开页|名称 |乌斯阿里奥 |评估1 |评估2 |评估7 |资源1 |资源2 |资源7 |

+--------+--------+--------+--------+--------+-- ------+------+------+------+

| 66 | 66埃里克|乌苏1 | 10 | 10 9 | 4 | 8 | 8 | 8 |

| 66 | 66埃里克|乌苏1 | 10 | 10 9 | 4 | 9 | 9 | 9 |

| 66 | 66埃里克|乌苏1 | 10 | 10 9 | 4 | 0 | 0 | 0 |

| 66 | 66埃里克|乌苏2 | 6 | 6 | 6 | 8 | 8 | 8 |

| 66 | 66埃里克|乌苏2 | 6 | 6 | 6 | 9 | 9 | 9 |

| 66 | 66埃里克|乌苏2 | 6 | 6 | 6 | 0 | 0 | 0 |

| 66 | 66埃里克|乌苏3 | 10 | 10 10 | 10 10 | 10 8 | 8 | 8 |

| 66 | 66埃里克|乌苏3 | 10 | 10 10 | 10 10 | 10 9 | 9 | 9 |

| 66 | 66埃里克|乌苏3 | 10 | 10 10 | 10 10 | 10 0 | 0 | 0 |

+--------+--------+--------+--------+--------+-- ------+------+------+------+

最佳答案

我不确定这是否能解决问题,但试试这个,我还没有看到你的数据库,所以不确定解决方案。

SELECT  A.folio, 
Nombre,apaterno,amaterno,programa ,
P1.usuario, eval1,eval2,eval3, eval4 , eval5, 
eval6 , eval7, 
res1,res2,res3, res4 , res5,res6 ,res7

FROM DCEB_Aspirantes A
LEFT JOIN DCEB_Aspirante_has_Eval_Parte1 P1  ON A.id_aspirante = 
P1.id_aspirante  
LEFT JOIN  DCEB_Aspirante_has_Eval_Parte2 P2 ON A.id_aspirante = 
P2.id_aspirante

关于mysql - SQL JOIN 显示重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44074577/

相关文章:

php - 从大于单页的动态创建的表格 (div) 创建多页 PDF

mysql - 优化 SQL 以连接随机单词

sql - 我如何将这个包含多个子选择的 SQL 压缩成更理智的东西?

Mysql select into 语句以更容易理解的格式

android - 如何在android中加入urdu单词?

python - 插入 mysql python - 不工作

mysql - 获取两个日期之间的记录,但有时它们可​​能为空

sql - min() 改进

mysql - 具有多个条件的自连接

mysql - SQL 连接两个表,仅获取第二个表的最新条目