GOOGLE ADS

viernes, 22 de abril de 2022

Excluya todas las filas si el mismo valor en la columna a se encuentra varias veces en una tabla

¿Hay alguna manera de verificar si lead_id está varias veces en la tabla y, en caso afirmativo, excluirlo de la consulta? La razón es que solo quiero agregar nuevas filas si status_id = 1 Y si no se encontraron otras filas/id de estado para ese lead_id.

La base de datos está diseñada de manera que para cada actualización de estado crea una nueva fila. Por lo tanto, la fila anterior tiene una marca de tiempo más antigua y permanece en la tabla de base de datos, y se mostrarán en el front-end en un componente de historial de estado. Pero dado que está diseñado de esta manera, no puedo simplemente decir: dar a cada usuario con estado 1, una nueva actualización de estado. Porque luego agregará una fila para cada lead_id, ya que todos los leads ingresarán a la base de datos con status_id 1.

Consulta que estaba usando hasta ahora:

INSERT INTO `lead_has_status` (`lead_id`, `lead__status_id`, `comment`, `created_at`, `updated_at`)
SELECT (`lead_id`, 13, "", `created_at`, `updated_at`)
WHERE `lead__status_id` = 1 AND

Cómo se ven los datos:



















































lead_idestado_idmas datos
unounodatos
uno12datos
2unodatos
2catorcedatos
3unodatos
4unodatos
5unodatos
6unodatos

Solución del problema

si su tabla tiene una identificación única por fila, entonces puede usar una consulta como esta

INSERT INTO `lead_has_status` (`lead_id`, `lead__status_id`, `comment`, `created_at`, `updated_at`)
SELECT (`lead_id`, 13, "", `created_at`, `updated_at`)
FROM `lead_has_status` l
WHERE `lead__status_id` = 1 AND NOT EXISTS (
SELECT 1 FROM lead_has_status
WHERE `lead_id` = l.`lead_id` AND id <> l.id );

y sin identificación

INSERT INTO `lead_has_status` (`lead_id`, `lead__status_id`, `comment`, `created_at`, `updated_at`)
SELECT (`lead_id`, 13, "", `created_at`, `updated_at`)
FROM `lead_has_status` l
WHERE `lead__status_id` = 1 AND ()
SELECT COUNT(*) FROM lead_has_status
WHERE `lead_id` = l.`lead_id`) = 1;

No hay comentarios:

Publicar un comentario

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...