Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/08/2015, 13:35
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 11 meses
Puntos: 447
Respuesta: Problemas en base no relacional

Hola David_Carrera_G:

Veamos si entendí correctamente el problema. Lo que tienes es una Doble Referencia a una misma tabla, por lo tanto, lo que tienes que hacer es un DOBLE JOIN, utilizando un alias. Supongamos que tienes estas dos tablas:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla1;
  2. +------+-------------+
  3. | id_1 | descripcion |
  4. +------+-------------+
  5. |    1 | uno         |
  6. |    2 | dos         |
  7. |    3 | tres        |
  8. +------+-------------+
  9. 3 rows in set (0.00 sec)
  10.  
  11. mysql> SELECT * FROM tabla2;
  12. +------+------+
  13. | id_a | id_b |
  14. +------+------+
  15. |    1 |    1 |
  16. |    2 |    3 |
  17. |    3 |    1 |
  18. +------+------+
  19. 3 rows in set (0.00 sec)

La tabla 2 contiene dos campos que hacen referencia a la tabla1, si quisieras obtener la DESCRIPCIÓN de esos campos, puedes hacer algo como esto:

Código MySQL:
Ver original
  1. mysql> SELECT tabla2.id_a, TA.descripcion, tabla2.id_b, TB.descripcion
  2.     -> FROM tabla2
  3.     -> INNER JOIN tabla1 TA ON TA.id_1 = Tabla2.id_a
  4.     -> INNER JOIN tabla1 TB ON TB.id_1 = Tabla2.id_b;
  5. +------+-------------+------+-------------+
  6. | id_a | descripcion | id_b | descripcion |
  7. +------+-------------+------+-------------+
  8. |    1 | uno         |    1 | uno         |
  9. |    3 | tres        |    1 | uno         |
  10. |    2 | dos         |    3 | tres        |
  11. +------+-------------+------+-------------+
  12. 3 rows in set (0.01 sec)

Observa que cada JOIN utiliza un alias distinto (TA, TB) aunque hacen referencia a la misma tabla, en el JOIN utilizas cada uno de los campos que hacen referencia a este campo por separado.

Haz la prueba y nos comentas.

Saludos
Leo

Última edición por leonardo_josue; 25/08/2015 a las 13:44