Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta JOIN sobre la misma tabla

Estas en el tema de Consulta JOIN sobre la misma tabla en el foro de Mysql en Foros del Web. Hola amigos, Tengo una tabla (Contenidos) con esta estructura: Id - Id_Relacionado - Titulo 1 .- El Id es un campo autonumerico y unico 2 ...
  #1 (permalink)  
Antiguo 22/08/2009, 10:44
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 16 años, 2 meses
Puntos: 1
Consulta JOIN sobre la misma tabla

Hola amigos,

Tengo una tabla (Contenidos) con esta estructura:

Id - Id_Relacionado - Titulo


1 .- El Id es un campo autonumerico y unico
2 .- El Id_Relacionado lo utilizo para relacionar ese registro con otro de esta misma tabla. Por ejemplo, si el primer registro fuera una categoria, todas las subcategorias que dependen o cuelgan de esta categoria llevarian en el campo Id_Relacionado el valor del Id de la categoria.

Lo que necesito es sacar un recordset que me de todos los registros que cuelgan de la misma categoria, teniendo como variable el valor del campo Id de una subcategoria.

Me explico:

1.- Imaginaro que hay una categoria que es el Id = 5 y de esta categoria cuelgan 3 subcategorias con los Id = 7 , Id = 8 , Id =9. Toda ellas tendran como valor en el campo de Id_Relacionado = 5

Sabiendo que el Id de una subcategoria es el 8 , quisiera seleccionar todos los demas registros que tambien tengan como Id_Relacionado = 5


He probado con esto, pero no funciona:

SELECT a.Id_Relacionado, a.Id, a.Titulo FROM (Contenidos AS a LEFT JOIN Contenidos AS b ON a.Id_Relacionado = b.Id) WHERE a.id=8


Gracia de antemano
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #2 (permalink)  
Antiguo 23/08/2009, 04:06
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 11 años, 10 meses
Puntos: 300
Respuesta: Consulta JOIN sobre la misma tabla

Si quieres los que tienen ese mismo valor incluyendo el id 8,
SELECT Id FROM tabla INNER JOIN (SELECT id_Relacionado FROM `tabla` WHERE Id = 8)T1 ON tabla.Id_Relacionado = T1.id_Relacionado

y si no quieres sacar el mismo que te sirve para buscar,
SELECT Id FROM tabla INNER JOIN (SELECT id_Relacionado FROM `tabla` WHERE Id = 8)T1 ON tabla.Id_Relacionado = T1.id_Relacionado AND tabla.id <> 8
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:08.