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

Ayuda con una consulta

Estas en el tema de Ayuda con una consulta en el foro de Bases de Datos General en Foros del Web. Hola a todos. Imaginaros 3 tablas con los siguientes campos: 1. lineas: - id_linea - nombre - color - longitud 2. triangulos: - id_triangulo - ...
  #1 (permalink)  
Antiguo 12/06/2007, 06:37
 
Fecha de Ingreso: noviembre-2006
Mensajes: 30
Antigüedad: 17 años, 6 meses
Puntos: 1
Ayuda con una consulta

Hola a todos.
Imaginaros 3 tablas con los siguientes campos:
1. lineas:
- id_linea
- nombre
- color
- longitud
2. triangulos:
- id_triangulo
- nombre
- color
- perimetro
3. piramides
- id_piramide
- nombre
- altura
- textura

Es un problema genérico, no es real, pero el que yo tengo es muy parecido.

Ahora viene lo curioso. Tengo una tabla que actúa como índice de las tablas anteriores:
tabla "elemento":
- id_elemento (campo único)
- tabla (el nombre de la tabla que puede ser linea/triangulo/piramide)
- id (el identificador dentro de la tabla)
- observaciones (otro campo más)

Repito, este es un caso abstracto, pero muy parecido al mío.
Quizás pensaréis que estas tablas no estan normalizadas ni mucho menos, e incluso que es un caos organizar y gestionar la información en ellas, pero por política de empresa no puedo modificar ningún dato ni estructura de ninguna de ellas; mi problema es el siguiente: necesito realizar una aplicación que a la hora de acceder a los datos de un elemento dado (acceso mediante el campo "id_elemento") muestre los datos de ese elemento pero buscando también los datos del triangulo/linea/piramide al cuál se refiera.
Por ejemplo, quiero sacar la información del elemento con id=23. Ese elemento tiene el campo tabla como "triangulo" y el id= 1232.
Lo que quiero es que aparte de extraer el campo observaciones del elemento con id_elemento=23, pueda extraer la info del triangulo con id=1232 EN UNA MISMA CONSULTA (con dos es factible y sencillo hacerlo, pero, es posible hacerlo con una??? A mi me resulta muy difícil dado que necesito alguna manera de saber de que tipo de elemento se trata).

1 saludo y espero que se entienda el problema.

Última edición por KePitt2; 12/06/2007 a las 08:21
  #2 (permalink)  
Antiguo 13/06/2007, 01:09
 
Fecha de Ingreso: noviembre-2006
Mensajes: 30
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: Ayuda con una consulta

Nadie sabe si es posible hacerlo o es que me he explicado muy mal???
  #3 (permalink)  
Antiguo 13/06/2007, 04:05
 
Fecha de Ingreso: junio-2007
Mensajes: 1
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Ayuda con una consulta

Pues yo tengo un problema como el tuyo y tampoco me sale...
Haber si hay alguien que nos ayude a ambos XD!
  #4 (permalink)  
Antiguo 13/06/2007, 20:38
Avatar de normandos  
Fecha de Ingreso: diciembre-2001
Mensajes: 216
Antigüedad: 22 años, 4 meses
Puntos: 0
Re: Ayuda con una consulta

Es raro ... al menos me parece raro...o tal vez no entendi muy bien.
Cada elemento tiene un id en su tabla respectiva y a la vez ese di está dentro de la tabla elementos? pero cual es el id del elemento (triangulo, etc) dentro de la tabla elementos? id (el identificador dentro de la tabla)?
Bueno no he entendido bien el planteamiento pero para que tengas una idea para sacar dos tuplas de dos tablas diferentes en una misma consulta esas tuplas deben tener al menos un campo que sean claves y que sean IGUALES.
Mismo tipo y demas, para poder compararlos.
Entonces podrias hacer ("SELECT * FROM tabla1, tabla2 WHERE tabla1.id=tabla2.id_a_igualar_con_el_id_de_tabla1 AND tabla1.id"= & parámetro).
Bueno, seleccionas de las dos tablas todo (*) donde los campos id de cada tabla (en este caso del elemento) sean iguales y ademas el id de ese elemento es el mismo que traes por parámetro (imagino que buscarás un id en particular y ese viene por parámetro).
No se si eso ayuda en algo.
Realmente no se casi nada de sql pero si entra alguien que sabe mas que yo podra rectificar o ratificar lo dicho.
__________________
"No importa lo que nos suceda sino cómo reaccionamos ante lo que nos sucede."

Presidente James E. Faust
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:48.