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

Consulta Condicionada

Estas en el tema de Consulta Condicionada en el foro de Mysql en Foros del Web. Hola: Tengo un problema en la consulta de una tabla que esta referenciada a otras tablas, pues necesito buscar la coincidencia de 8 campos en ...
  #1 (permalink)  
Antiguo 02/10/2013, 13:37
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 10 meses
Puntos: 12
Consulta Condicionada

Hola:

Tengo un problema en la consulta de una tabla que esta referenciada a otras tablas, pues necesito buscar la coincidencia de 8 campos en diferentes tablas.

La tabla principal esta referenciada a otras 4 tablas, pero que corresponde a un solo campo. Me explico mejor, lo que requiero es obtener los remitentes que enviaron un documento, el problema es que los remitentes pueden ser internos o externos esto significa que los internos se encuentran almacenados en una tabla diferente a los externos, sin embargo existe un campo que determina si el registro corresponde a un remitente interno o externo "tipoflujo", entonces la consulta debe decidir de acuerdo a este campo si es "I", buscara la referencia a la tabla interna si es "E" buscará la referencia a la tabla Externa.

se me hace complicado hacer esta consulta, quisiera saber si con una consulta puedo obtener estos registro o necesariamente debo acudir a procedimientos almacenados
  #2 (permalink)  
Antiguo 02/10/2013, 14:02
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
Puntos: 2658
Respuesta: Consulta Condicionada

En realidad, medio te estás ahogando en un dedal... No es tan complicado como te parece.
Sin conocer exactamente las tablas involucradas es difícil darte una sintaxis concreta, pero la idea sería:
Código MySQL:
Ver original
  1. SELECT 'Interno' OrigenDoc, A.*, B.*
  2. FROM tabla1 A INNER JOIN tabla2 b ON A.campofk = B.campofk
  3. WHERE A.campoorigen = 'I' AND (otras condiciones)
  4. SELECT 'Externo' OrigenDoc, A.*, C.*
  5. FROM tabla1 A INNER JOIN tabla3 C ON A.campofk = C.campofk
  6. WHERE A.campoorigen = 'E' AND (otras condiciones)
  7. ...
  8. ...
La idea es simple: si de cada subconjunto estás obteniendo iguales datos, simplemente haces todas las búsquedas al mismo tiempo, uniendo los resultados. Aquella consulta que no obtenga datos, simplemente no aparecerá.
La primer columna la puse solamente para forzar la aparición de un texto indicativo de qué tabla origen tiene el dato obtenido. Ni no la quieres, quitala.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 02/10/2013, 14:44
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 10 meses
Puntos: 12
Respuesta: Consulta Condicionada

me parece logico tu respuesta, lo probare, gracias

Etiquetas: campo, condicionada, registro, 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 11:14.