entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

necesito hacer un super inner join

me explico estoy haciendo la forma que un usuario pueda descargar un reporte en excel de la informacion que tengo en la bd
con un solo inner join puedo traer los valores de 2 tablas el problema surge cuando va aumentando y no quiero hacerlo por tabla porque no seria muy eficiente ya que seria practicamente un listar ,lo que quiero es coleccionar informacion de las tablas seleccionadas en una sola y ante todo muchas gracias si pueden ayudarme acontinuacion dejare las tablas donde necesito hacer esto

cerdo ->nombre tabla
id_cerdo
cerdo
chapeta
id_raza
id_genero
id_corral

control_peso
id_cerdo
peso
fecha

corral
id_corral
corral
descripcion
id_modulo

estado
id_estado
estado

genero
id_genero
genero

historia
id_historia
id_cerdo
id_estado
fecha
observacion

monta
id_monta
id_cerdo
fecha_celo
fecha_repeticion_celo
fecha_parto
observacion

raza
id_raza
raza

tratamiento
id_tratamiento
id_cerdo
id_medicamento
cantidad
fecha
observacion
responsable

1 Respuesta

2votos

Leonardo-Tadei Puntos227320

Hola @zenosama,

no es cierto que no seria muy eficiente hacer un JOIN entre varias tablas.

La eficiencia de los JOIN está dada porque las relaciones sean columnas indexadas, y también porque los índices sean numéricos. Cualquier RDBMS actual (MySQL, Postgres, etc) soportan esto y es difícil notar la diferencia con una consulta a 1 o 2 tablas.

En el caso que planteás, esta nueva tabla sería además una repetición, con lo que estarías violando la normalización; sin contar con que al generar la tabla, tendrías exactamente el mismo problema de los muchos JOIN, y lo tendrías cada vez que hay que emitir un informe, porque para dar datos actualizados.

Si el informe se genera y sirve sin actualizar durante un periodo de tiempo largo, podrías guardar el informe en el disco y no volverlo a generar durante ese periodo de tiempo... esa sería una útil optimización, pero no es aplicable en todos los casos.

Saludos cordiales!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta