我有以下查询
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/