Ver Mensaje Individual
  #6 (permalink)  
Antiguo 11/11/2009, 03:08
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: Consulta 3 tablas LEFT JOIN sin repetir los datos del ultimo join datos

Hola,

no se si serà un problema de motores.... pero ese group by no da lo que se pide.

Pero, en caso que lo sea, me podeis explicar como se puede dar este resultado

usuarios | links | comentarios
----------------------------------------
usr1 | link1 | comentA
usr1 | link5 | comentH

si la tabla de comentarios y de links son independientes luego por que el comentA se va a relacionar con

usr1 | link1

y no con

usr1 | link5


a mi entender el resultado buscado no es posible a nivel de algebra relacional.... y por tanto no lo deberia ser en ningun motor que pretenda ser relacional...

puesto que si comentA
esta relacionado con usr1
luego lo esta con usr1 | link1 y con usr1 | link5

y así con todos los links relacionados con usr1....

La única forma seria que la tabla comentarios no fuera independiente de links


usuarios
(id, nombre, mail, etc.)
links
(id,id_usr,texto)
comentarios
(id,id_usr,id_lnk,texto)


luego se podria hacer


Código sql:
Ver original
  1. SELECT *
  2. FROM (
  3. (usuarios u
  4. LEFT JOIN
  5. links l ON l.id_usr = u.id)
  6. LEFT JOIN
  7. comentarios ON c.id_usr = u.id AND c.id_lnk=l.id)

Y aun así luego se repetirian los links que tengan mas de un comentario igual que se repiten los usuarios....

y además quizas se estaria modificando el sentido de la bbdd....

Quim

Última edición por quimfv; 11/11/2009 a las 03:36