SQL - Buscar en varias tablas.

 
Vista:

Buscar en varias tablas.

Publicado por Angel Huerta (22 intervenciones) el 09/07/2004 00:21:00
Qué tal, foro!
Tengo 15 tablas idénticas, en las cuales tengo que buscar un registro por medio de un solo parámetro, la clave, per no conozco en cuál tabla está el registro. La única manera que se me ocurre es recorrer las tablas una por una hasta encontrar el dato, pero esto se ve muy ineficiente. ¿Alguien me podría decir una forma más eficiente de hacer esto?
Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Buscar en varias tablas.

Publicado por william (3 intervenciones) el 10/07/2004 20:27:58
Claro: crea un tabla temporal; llena el select de las 15 tablas y busca el valor en la temporal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Buscar en varias tablas.

Publicado por Carlos Gil (43 intervenciones) el 12/07/2004 17:02:14
La idea de la tabla temporal es buena, pero tambien puedes intentar esto.

Select [lista de campos]
From Tabla01
Where campo1 = @busq
UNION
Select [lista de campos]
From Tabla02
Where campo1 = @busq
UNION
Select [lista de campos]
From Tabla03
Where campo1 = @busq

Para que funcione correctamente la lista de campos debe ser identica. Suerte y espero haber sido util.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Buscar en varias tablas.

Publicado por Angel Huerta (22 intervenciones) el 14/07/2004 01:54:46
Muchas gracias por su respuesta.
Ahora, una pregunta más: ¿Se puede obtener el nombre de la tabla en la que se encontró el registro?

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Buscar en varias tablas.

Publicado por Edgar (19 intervenciones) el 14/07/2004 15:13:15
Hola

Si puedes hacerlo si agregas el nombre de la tabla como un campo del select, por ejemplo, en SQL server puedes hacer esto (puede ser distinto con otros manejadores)

SELECT CO_CLIENTE, 'TABLA' AS NOMBRE_TABLA FROM TABLA

Claro, como te mencionaron anteriormente, en la union de tablas (o en la tabla temporal) debes asegurarte de colocar el nombre de cada tabla para que al obtener el valor deseado te indique el nombre de la tabla

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar