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

Copie datos de una tabla a otra con una condición específica

Su LEFT JOIN con la condición consignment.id >id1 casi está creando un producto catesiano. Lo que probablemente desee es insertar solo filas con un id más alto de la tabla fuente que el id1 más alto en la tabla de destino. Debe usar un SELECT MAX(id) subconsulta en su lugar:

SELECT [..]
FROM  `eamglo5_singaporelive`.`consignment` 
WHERE `eamglo5_singaporelive`.`consignment`.`processed`=1 
  and `eamglo5_singaporelive`.`consignment`.date_booked>'2018-07-17'
  and `eamglo5_singaporelive`.`consignment`.id > (
     SELECT MAX(id1) FROM eamglo5_billingsystem.`consignment`
  )