Hola castillo_depaz:
Para unir dos o más tablas, la mejor opción es utilizar JOIN's, (LEFT, RIGTH o INNER dependiendo del caso)... en tu caso, al tener 3 campos distintos relacionados sobre la misma tabla, puedes hacer un JOIN para cada columna UTILIZANDO UN ALIAS. checa este script:
Código MySQL:
Ver original+--------+----------+----------+----------+
| codigo | product1 | product2 | product3 |
+--------+----------+----------+----------+
| 3 | 1 | 2 | 5 |
+--------+----------+----------+----------+
+--------+----------------+
| codigo | nombreproducto |
+--------+----------------+
| 1 | Arroz |
| 2 | Miel |
| 3 | Frutas |
| 4 | Cafe |
| 5 | Otro |
+--------+----------------+
-> T2_a.nombreproducto, T2_b.nombreproducto, T1.product3
-> LEFT JOIN Tabla2 T2_a
ON T1.product1
= T2_a.codigo
-> LEFT JOIN Tabla2 T2_b
ON T1.product2
= T2_b.codigo
; +--------+----------------+----------------+----------+
| codigo | nombreproducto | nombreproducto | product3 |
+--------+----------------+----------------+----------+
| 2 | Miel
| Otro
| NULL | | 3 | Arroz | Miel | 5 |
+--------+----------------+----------------+----------+
observa que llamo DOS VECES a la tabla2, pero CON ALIAS DISTINTOS:
Código:
LEFT JOIN Tabla2 T2_a
LEFT JOIN Tabla2 T2_b
Cada tabla la uno con una columna en específico:
Código:
ON T1.product1 = T2_a.codigo
ON T1.product2 = T2_b.codigo;
Tendrías que hacer lo mismo para el caso del product3, agregando otro LEFT JOIN, con un alias distinto y uniéndolo al campo product3.
Saludos
Leo.