Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/07/2010, 11:37
pepepercebe
 
Fecha de Ingreso: diciembre-2005
Mensajes: 92
Antigüedad: 19 años, 2 meses
Puntos: 0
Obterner datos de 3 tablas

Hola a todos, estoy tratando de hacer una consulta que coja valores de 3 tablas relacionadas y no consigo obtener el resultado que quiero.

Tengo la siguiente base de datos:



El campo id de la tabla elementos esta relacionado con con los campos id de las tablas imagenes y parrafos. Lo que quiero es hacer una consulta por un determinado id y obtener los datos de las 3 tablas (elementos,imagenes,parrafos) que contengan ese id.
Si lo realizo por separado obtengo 1 resultado en la tabla elementos, 2 resultados en la tabla imagenes y 3 en la de parrafos.

tabla elementos :
SELECT id, descriptor, year FROM elementos WHERE id='4'



tabla imagenes :
SELECT id,descriptor,idimagen,ruta, posicion FROM imagenes WHERE id='4'



tabla parrafos :
SELECT idparrafos,posicion,texto FROM parrafos WHERE id='4'



El problema viene cuando intento agrupar las 3 consultas en una, ya que yo en la consulta quiero obtener de resultado los 6 resultados de las imagenes anteriores s pero las recibo repetidas y con los campos mezclados.

Esta es la consulta :

SELECT e.id,e.descriptor,e.iduser,i.idimagen,i.ruta,i.pos icion,p.idparrafos,p.posicion,p.texto FROM elementos e JOIN imagenes i ON e.id = i.id JOIN parrafos p ON e.id = p.id WHERE e.id ='4'

y esta es la respuesta:



Hay campos como texto que es solo esta en los parrafos y ruta que solo esta en las imagenes y el resultado que yo espero seria las 3 filas de los parrafos, las 2 de las imagenes y una de elementos y en los campos como ruta apareciera NULL si la fila es de parrafo y ya ruta si es una imagen, y en el campo texto apareciera NULL si es una imagen y el texto si es un parrafo.

Este seria el resultado que quiero:

-----------------id------texto-------------ruta
----------------------------------------------------------
elemento----4------NULL-----------NULL
imagen1------4-----NULL-----------ruta
imagen2------4-----NULL-----------ruta
parrafo1-------4-----texto------------NULL
parrafo2-------4-----texto------------NULL
parrafo3------4------texto------------NULL

Espero haberme explicado bien, llevo probando dos dias, he hecho pruebas con INNER JOIN, LEFT OUTER JOIN, subconsultas y siempre recibo el mismo resultado, no se si tendre mal las relaciones o algun otro problema.

Sal2