2017-05-19 6 views
0

Ich habe die folgende AbfrageSQL JOIN zeigt doppelte Zeilen

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 

In der DCEB_Aspirantes Tabelle i die Nombre haben, apaterno, amaterno, programa

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

Ich habe nur ein Register in DCEB_Aspirantes (a Benutzer), ad hat dieser Benutzer und Auswertung in den anderen 2 Spalten. Ich wollte ein Ergebnis wie dieses

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

Das Problem ist der Benutzer eine Bewertung von 3 Lehrer hat, so werden 3 Reihen dort sein, ich habe dieses Ergebnis aber anstelle von 3 Reihen zeigt es 9 Zeilen (3-mal die gleiche Reihe)?

Dies ist das Ergebnis + -------- + -------- + --------- + ------- + ---- --- + ------- + ------ + ------ + ------ +

| Folio | Nombre | usuario | eval1 | eval2 | eval7 | res1 | res2 | res7 |

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

| 66 | Erick | usu1 | 10 | 9 | 4 | 8 | 8 | 8 |

| 66 | Erick | usu1 | 10 | 9 | 4 | 9 | 9 | 9 |

| 66 | Erick | usu1 | 10 | 9 | 4 | 0 | 0 | 0 |

| 66 | Erick | usu2 | 6 | 6 | 6 | 8 | 8 | 8 |

| 66 | Erick | usu2 | 6 | 6 | 6 | 9 | 9 | 9 |

| 66 | Erick | usu2 | 6 | 6 | 6 | 0 | 0 | 0 |

| 66 | Erick | usu3 | 10 | 10 | 10 | 8 | 8 | 8 |

| 66 | Erick | usu3 | 10 | 10 | 10 | 9 | 9 | 9 |

| 66 | Erick | usu3 | 10 | 10 | 10 | 0 | 0 | 0 |

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

+0

Nebenbei verwenden Sie bitte 'Aliase', da es mit der Lesbarkeit und ein paar anderen Dingen hilft. –

+0

Sie meinen, 3 Zeilen sind genaue Replik voneinander? überhaupt keinen Unterschied? – Neha

+0

Versuchen Sie es stattdessen mit einem 'LINKEN VERBINDEN' - ich denke, das würde Ihr Problem beheben. –

Antwort

0

Ich bin nicht sicher, ob dies das Problem lösen wird, aber versuchen Sie dies, ich habe nicht Habe deine Datenbank also nicht sicher von der Lösung gesehen.

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 
+0

Hallo !. Ich habe versucht, Ihre Lösung, aber es macht immer noch ein 3x3 Ergebnis. Mischen Sie jede Auswertung, ich habe versucht, die Frage mit einer Ergebnistabelle zu bearbeiten –

+1

So sind die Ergebnisse nicht replizieren, das Ergebnis ist anders – Neha

+0

müssen Sie entscheiden, was Sie in den letzten drei Spalten wollen, wenn Sie wollen, Summe? max? Mindest? oder was genau. Benutze group by und benutze sum/max/min für die letzten drei Spalten, – Neha