Comunidad de diseño web y desarrollo en internet online

Mejorar consulta

Citar            
MensajeEscrito el 23 Abr 2020 10:35 pm
Tengo la siguiente consulta:

SELECT articulo.codempresa,articulo.Id,articulo.Nombre,
(SELECT Codigo.Valor
FROM Codigo
WHERE Codigo.codarticulo=articulo.id And Codigo.codtipocodificacionarticulo=1) As Cod1,
(SELECT Codigo.Valor
FROM Codigo
WHERE Codigo.codarticulo=articulo.id And Codigo.codtipocodificacionarticulo=2) As Cod2,
(SELECT Codigo.Valor
FROM Codigo
WHERE Codigo.codarticulo=articulo.id And Codigo.codtipocodificacionarticulo=3) As Cod3
FROM articulo LEFT JOIN Codigo ON Codigo.CodArticulo= articulo.Id
WHERE articulo.codempresa=100
GROUP BY articulo.id
ORDER BY articulo.nombre
LIMIT 100"

Son 2 tablas relacionadas...
con 4000 registros en la tabla articulo se me va 2 minutos... como puedo mejorarla?

Por hivergor

4 de clabLevel



 

chrome
Citar            
MensajeEscrito el 24 Abr 2020 10:31 am
Las bases de datos relacionales se benefician de las relaciones (join, left join, right join) y a simple vista haces un monton de subselects que son un desastre en cuanto a rendimiento. SI son dos tablas, empieza planteandote un join

Jorge

Por solisarg

BOFH

13640 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome
Citar            
MensajeEscrito el 24 Abr 2020 06:48 pm

solisarg escribió:

Las bases de datos relacionales se benefician de las relaciones (join, left join, right join) y a simple vista haces un monton de subselects que son un desastre en cuanto a rendimiento. SI son dos tablas, empieza planteandote un join

Jorge

Por hivergor

4 de clabLevel



 

chrome
Citar            
MensajeEscrito el 24 Abr 2020 07:01 pm
Es la única manera en que obtuve el resultado requerido.
El problema real es asi, tengo tres tablas
Articulo (códigos y nombres de artículos)
Tipo Código (lista de código y nombre de tipo de código
Códigos: tabla que relaciona un articulo con un tipo de código y le da un valor.
_____________________________________________________________________________
Tabla Articulo Tabla Codigos Tabla Tipo Codigo
_____________________________________________________________________________
Cod |Nombre |CodArticulo |CodTipoCodigo | Valor |Cod |Nombre
_____________________________________________________________________________
1 |Harina | 1 |1 |AABB |1 |Cod. Barra
2 |Arroz | 1 |2 |1122 |2 |Cod Fabrica
3 |Aceite | 2 |1 |CCDD

Resultado deseado
_____________________________________________
|Ariculo |Cod.Barra |Cod.Fabrica
_____________________________________________
|Harina |AABB |1122
|Arroz |CCDD |
|Aceite | |

Por hivergor

4 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Abr 2020 03:18 pm
Haz un loop en PHP, un query por pasada por codtipocodificacionarticulo y juntas todo en un array, es decir 3 querys en vez de uno.

Jorge

Por solisarg

BOFH

13640 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome

   Página 1 de 1

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.