Hola Ozkitar:
Tal pareciera que no haz puesto atención a lo que te han pedido que hagas... este es el tercer post que abres acerca del mismo tema en lugar se seguir con el mismo post hasta darlo por cerrado.
En el Post anterior Ribon te pedia que revisaras el uso de JOIN's en las consultas, veo que lo estás utilizando, pero no lo estás haciendo correctamente... los JOIN's UTILIZAN LA CLÁUSULA ON PARA HACER LAS UNIONES, no el WHERE... tal como lo estás poniendo se realiza un producto cartesiano entre las tablas.
Segundo, la consulta no te está egresando ningún registro pues la condición que pones ES IMPOSIBLE DE QUE OCURRA, al menos con los datos que estás colocando... al poner esto:
Código:
WHERE
tabla2.idtabla1_2 = tabla1.idtabla1 AND
tabla2.idtabla1_1 = tabla1.idtabla1
estás diciendo que el idtabla1_1 y el idtabla1_2 SEAN IGUALES, cosa que nunca sucede... matemáticamente estarías diciendo lo siguiente
Código:
A = B y C = B por lo tanto A = C
No estoy seguro de qué es lo que quieres obtener como resultado, pero veamos si esto te sirve. Al tener una REFERENCIA DOBLE en tu tabla2 (es decir dos campos distintos apuntando hacia la tabla1) debes usar DOS VECES LA TABLA1 utilizando un alias, para poder hacer cada join por separado.
Checa este script:
Código MySQL:
Ver original+----------+--------+
| idtabla1 | nombre |
+----------+--------+
| 1 | oscar |
| 2 | Carlos |
+----------+--------+
+----------+------------+------------+-----------+
| idtabla2 | idtabla1_1 | idtabla1_2 | nombre |
+----------+------------+------------+-----------+
| 1 | 2 | 1 | oscarzito |
| 2 | 1 | 2 | marko |
| 3 | 2 | 1 | yo |
| 4 | 1 | 2 | el |
+----------+------------+------------+-----------+
-> T2.idtabla2, T2.nombre,
-> T1A.idTabla1, T1A.nombre,
-> T1B.idTabla1, T1B.nombre
-> INNER JOIN tabla1 T1A
ON T2.idtabla1_1
= T1A.idtabla1
-> INNER JOIN tabla1 T1B
ON T2.idtabla1_2
= T1B.idtabla1
+----------+-----------+----------+--------+----------+--------+
| idtabla2 | nombre | idTabla1 | nombre | idTabla1 | nombre |
+----------+-----------+----------+--------+----------+--------+
| 1 | oscarzito | 2 | Carlos | 1 | oscar |
| 2 | marko | 1 | oscar | 2 | Carlos |
| 3 | yo | 2 | Carlos | 1 | oscar |
| 4 | el | 1 | oscar | 2 | Carlos |
+----------+-----------+----------+--------+----------+--------+
Observa que la tabla1 se usa dos veces con los alias (T1A y T1B). Si esto no es lo que necesitas por favor dinos qué es lo que esperas de salida a partir de tus datos.
Cita: EDITO: el compañero gnzsoloyo se adelantó 5 segundos a mi respuesta, es prácticamente la misma. Saludos
Saludos
Leo.