Hola elmoikano:
En primer lugar, al tener valores opcionales en tus columnas, dado que existen columnas con valores nulos, no puedes hacer la unión entre tus tablas con FROM-WHERE... debes hacer uso de LEFT JOIN. De hecho, hacer las uniones con FROM-WHERE no es recomendable en absoluto.
En lugar de hacer esto:
Código:
...
FROM tabla1, tabla2 WHERE tabla1.campo = tabla2.campo
...
Haz JOIN (INNER, LEFT O RIGTH según se necesite)
Código:
...
FROM tabla1 INNER JOIN tabla2 ON tabla1.campo = tabla2.campo
...
Si tienes dudas acerca de cómo funcionan cada uno de ellos checa esta página de SANTA WIKIPEDIA:
http://es.wikipedia.org/wiki/Join
Ahora bien, pasando a tu problema... creo que esto te podría servir:
Código MySQL:
Ver original+------+--------+--------+--------+
| id | donde1 | donde2 | donde3 |
+------+--------+--------+--------+
+------+--------+--------+--------+
+------+----------+
| id | nom_base |
+------+----------+
| 1 | EBSCO |
| 2 | JSTOR |
| 3 | ISI |
+------+----------+
mysql
> SELECT TX.id
, TY1.nom_base
, TY2.nom_base
, TY3.nom_base
+------+----------+----------+----------+
| id | nom_base | nom_base | nom_base |
+------+----------+----------+----------+
| 1 | EBSCO
| NULL | ISI
| | 2 | ISI
| JSTOR
| NULL | | 1 | EBSCO
| NULL | ISI
| | 2 | ISI
| JSTOR
| NULL | | 3 | NULL | JSTOR
| EBSCO
| +------+----------+----------+----------+
Observa que agregué registros para poder mostrar todos los posibles casos que puedes tener en tu tabla...
Y como recomendación final, NO INCLUYAS CODIGO PHP, supongo que alguno de los administradores del sitio editó tu post, recuerda que por políticas del foro no debes incluir código que no sea solo SQL.
Saludos
Leo.