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

[SOLUCIONADO] Consulta entradas relacionadas

Estas en el tema de Consulta entradas relacionadas en el foro de Mysql en Foros del Web. Buenas! a ver si me pueden ayudar: Tengo una tabla llamada "entradas", aunque también pueden llamarla artículos, post, publicaciones.... Cada una de estas entradas, puede ...
  #1 (permalink)  
Antiguo 28/05/2015, 02:07
Avatar de fbedia  
Fecha de Ingreso: julio-2010
Mensajes: 159
Antigüedad: 14 años, 4 meses
Puntos: 8
Consulta entradas relacionadas

Buenas! a ver si me pueden ayudar:

Tengo una tabla llamada "entradas", aunque también pueden llamarla artículos, post, publicaciones....
Cada una de estas entradas, puede estar relacionada con otras entradas... Para establecer esta relacion, he creado una tabla llamada "entradas_relacionadas" que tiene la siguiente estructura:

id (int, promary, autoincrement)
id_entrada1 (int)
id_entrada2 (int)

Un ejemplo de datos es el siguiente:



Como pueden ver, la entrada con id=9, esta relacionada con las entradas con id= 7, 5, 2 y 10

¿Puedo obtener los IDs de las entradas relacionadas con una única consulta?

Yo lo mas proximo que he echo ha sido esta SQL:
Código MySQL:
Ver original
  1. SELECT DISTINCT id_entrada1, id_entrada2
  2. FROM `entradas_relacionadas`
  3. WHERE id_entrada1=9 OR id_entrada2=9

Pero como pueden ver en la siguiente imagen, me retorna 2 columnas de resultados... y despues por codigo tengo que ir recorriendo ambas y quitando el 9 para obtener unicamente los IDs relacionados que es lo que quiero:



Lo ideal seria obtener en una unica consulta SQL los IDs: 7, 5, 2 y 10

Muchas gracias por la lectura!
Cualquier ayuda o sugerencia de cambio son bienvenidos.

Un saludo
__________________
Follow me on twitter @franbedia
  #2 (permalink)  
Antiguo 28/05/2015, 07:27
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Consulta entradas relacionadas

solucion con codigo para sql server:

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. id INT IDENTITY(1,1),
  4. id_entrada1 INT,
  5. id_entrada2 INT
  6. )
  7.  
  8. INSERT INTO #temp VALUES (9,7)
  9. INSERT INTO #temp VALUES (9,5)
  10. INSERT INTO #temp VALUES (2,9)
  11. INSERT INTO #temp VALUES (9,10)
  12.  
  13. SELECT * FROM(
  14. SELECT CASE WHEN id_entrada1=9 THEN id_entrada2 END AS VALUE FROM #temp
  15. UNION
  16. SELECT CASE WHEN id_entrada2=9 THEN id_entrada1 END AS VALUE FROM #temp
  17. ) AS t1 WHERE VALUE IS NOT NULL

Resultado:

value
2
5
7
10
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 28/05/2015, 07:56
Avatar de fbedia  
Fecha de Ingreso: julio-2010
Mensajes: 159
Antigüedad: 14 años, 4 meses
Puntos: 8
Respuesta: Consulta entradas relacionadas

Muchísimas gracias crack. Funciona a la perfección.

__________________
Follow me on twitter @franbedia

Etiquetas: entradas, relacionadas, select, sql, tabla
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 02:42.