Ver Mensaje Individual
  #6 (permalink)  
Antiguo 31/08/2012, 08:45
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Trasponer resultados de una consulta

Hola de nuevo aovalle:

como te comenté, la consulta estaba planteada siempre que existieran los valores para cada libro, veamos cómo sería el planteamiento si falta alguno de los dos... partiendo de que son dos atributos los que tienes tenemos tres combinaciones posibles.

primero, que tenga los dos atributos (Autor y Título)
segundo, que tenga sólo Autor
tercero, que tenga sólo título.

hay un cuarto estado, que sería que no tuviera ninguno de los atributos, pero para estos casos simplemente no debería aparecer en la tabla...

Si quieres plantear la consulta como lo estoy haciendo, es decir, con dos subconsultas y manejándolas como si se trataran de dos tablas diferentes, en realidad lo que tendrías que hacer es un FULL OUTER JOIN, lamentablemente MySQL no cuenta con este tipo de unión, pero puedes simularlo de varias maneras... Checa esta liga:

http://luauf.com/2008/07/01/como-sim...join-en-mysql/

Observa que la manera de simular un FULL OUTER JOIN es con dos consultas y un UNION... las consultas son muy similares, pero en una utilizas un LEFT JOIN (en lugar del INNER JOIN) y en la otra RIGTH JOIN...

Cabe recordar que el INNER JOIN requiere que existan elementos en ambas tablas que estás uniendo para regresar resultados, es por eso que en el ejemplo que puse especificaba que hacía el supuesto de que existian ambos atributos para cada libro...

Haz la prueba, trata de implementar el FULL OUTER JOIN a partir de la consulta que puse, cambiando el INNER por LEFT o RIGTH, y si tienes problemas lo comentas y lo revisamos.

Saludos
Leo.