sql >> Base de Datos >  >> RDS >> Mysql

MySQL INSERTAR EN la tabla SELECCIONAR DE otra_tabla, dentro de un PROCEDIMIENTO

Siempre que sea posible, evite usar CURSORs . SQL está diseñado para hacer cosas a granel, no una fila a la vez.

Estudia construcciones como

INSERT INTO ... SELECT ...;

CREATE TABLE ... SELECT ...;

Por ejemplo, pods_cursor probablemente se puede eliminar a través de:

INSERT INTO tblResultsErrors
        (POD, QtyMeasured)
    SELECT els.LocationCode, els.Quantity 
        FROM EnergyLocation el 
        RIGHT JOIN EnergyLocationSeries els
          ON els.LocationCode = el.Code2 OR els.LocationCode = el.Codep 
        LEFT JOIN EnergyContract ec
          on ec.LocationId = el.Id 
        WHERE el.Code2 IS NULL; 

(Ay. Mezclar DERECHA e IZQUIERDA hace que mi cabeza dé vueltas como la de un búho).

Usando OR en ON suena muy ineficiente. ¿Cuál es la intención?