Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/01/2009, 07:00
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problema con Right Join mysql

Código:
SELECT DISTINCT
T1.id,
T1.campo1,
T2.campo1,
T2.campo2,
T2.campo3
FROM T2
RIGHT JOIN T1
ON T2.id_oc =T1.id
WHERE T2.id2 = 45
OR T2.id2 is null
Si T2.id2 es PK nunca será NULO y el registro donde T2.id2=45 puede no estar realcionado con T1.

Si quitas los where te daria todos los de T1 esten o no relacionados con T2

Es mas habitual usar el LEFT

Código:
SELECT DISTINCT
T1.id,
T1.campo1,
T2.campo1,
T2.campo2,
T2.campo3
FROM T1 LEFT JOIN T2
ON T1.id=T2.id_oc;
Es T1.id una PK? T2.id_oc tiene repeticiones? Tienes claro que DISTINCT tendrá en cuenta todos los campos?

Si T2.id_oc tinen repeticiones luego los registros de T1 que se relacionen con varias de T2 saldran repetidos si en los campos de T2 tinen distintos valores...

No entiendo que es lo que estas buscando con el where sobre el id de T2...?

Quim