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

Consultar 2 referencias a registros de la misma tabla

Estas en el tema de Consultar 2 referencias a registros de la misma tabla en el foro de Bases de Datos General en Foros del Web. Hola que tal tengo el siguiente problema Estructura: Nodos {ID, LATX, LOGY, QTREE} Aristas{IDC,INI, FIN,D} donde INI es una referencia a un registro de NODO ...
  #1 (permalink)  
Antiguo 16/07/2009, 10:25
 
Fecha de Ingreso: junio-2009
Mensajes: 6
Antigüedad: 15 años, 6 meses
Puntos: 0
Consultar 2 referencias a registros de la misma tabla

Hola que tal tengo el siguiente problema Estructura:

Nodos {ID, LATX, LOGY, QTREE}
Aristas{IDC,INI, FIN,D}

donde INI es una referencia a un registro de NODO y FIN tambien es una referencia a un registro de NODO lo que intento hacer es una consulta para poder obtener todas las aristas que estan en un cierto segmento delimitados por el QTREE la consulta es la siguiente:

select b.latx as xini, b.logy as yini, c.latx as xfin, c.logy as yfin
from ARISTAS a, (select * from NODOS where QTREE like '102213320333120%') b, (select * from NODOS where QTREE like '102213320333120%') c
where a.INI = b.ID and a.FIN = c.ID

mi problema consite en que no me regresa todas las aristas me falta informacion con la consulta pero los puntos son correctoas ya que si hago la siguiente consulta esta toda la informacion.

select * from NODOS where QTREE like '102213320333120%'

si alguien me puede ayudar se los agradesco mucho.

PD. Si me dijeran cual es mi error o donde la logica esta mal tambien se los agradecere pero con que me ayuden es mas que suficiente gracias
  #2 (permalink)  
Antiguo 16/07/2009, 13:17
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Consultar 2 referencias a registros de la misma tabla

primero que todo, haría las anidaciones con sentencias join y no con anidaciones en el where.

Código sql:
Ver original
  1. SELECT b.latx AS xini, b.logy AS yini, c.latx AS xfin, c.logy AS yfin
  2. FROM ARISTAS a
  3. INNER JOIN
  4. (SELECT * FROM NODOS WHERE QTREE LIKE '102213320333120%') b
  5. ON a.INI = b.ID
  6. INNER JOIN
  7. (SELECT * FROM NODOS WHERE QTREE LIKE '102213320333120%') c
  8. ON a.FIN = c.ID
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 16/07/2009, 13:55
 
Fecha de Ingreso: junio-2009
Mensajes: 6
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Consultar 2 referencias a registros de la misma tabla

ok gracias estube leyendo un poco y si lo mejor es utilizar el join pero el codigo que me pasate duplica informacion a salida creo probare con los join pero anidados

Gracias
  #4 (permalink)  
Antiguo 16/07/2009, 14:04
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 4 meses
Puntos: 39
Respuesta: Consultar 2 referencias a registros de la misma tabla

Puedes mostrar con estan los datos duplicados?
De repente con un simple DISTINCT es suficiente.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #5 (permalink)  
Antiguo 16/07/2009, 17:18
 
Fecha de Ingreso: junio-2009
Mensajes: 6
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Consultar 2 referencias a registros de la misma tabla

Cita:
Iniciado por flaviovich Ver Mensaje
Puedes mostrar con estan los datos duplicados?
De repente con un simple DISTINCT es suficiente.
Pues gracias si puede ser una soluciion pero el tiempo de ejecucion de la consulta se incrementa demaciado con el distinct seguire lyendo a ver si hay otra manera.

Gracias de todas formas
  #6 (permalink)  
Antiguo 17/07/2009, 05:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes
Puntos: 2658
Respuesta: Consultar 2 referencias a registros de la misma tabla

Tal vez esto:
Código sql:
Ver original
  1. SELECT b.latx AS xini, b.logy AS yini, c.latx AS xfin, c.logy AS yfin
  2. FROM ARISTAS a
  3.      INNER JOIN NODOS b ON a.INI = b.ID
  4.      INNER JOIN NODOS c ON a.FIN = c.ID
  5. WHERE
  6.      b.QTREE LIKE '102213320333120%'
  7.      OR
  8.      c.QTREE LIKE '102213320333120%';
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 17/07/2009, 09:56
 
Fecha de Ingreso: junio-2009
Mensajes: 6
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Consultar 2 referencias a registros de la misma tabla

Muchas Gracias gnzsoloyo Funciona perfecto.

gracias a todos por su ayuda.
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 01:19.