Reputation: 31
I have the following query:
SELECT
(SELECT
MIN(IFNULL(lead2.ID_FATHER,lead2.ID)) as ID_FATHER
FROM
leads lead2
WHERE
lead2.TELEFONE_RESIDENCIAL = lead1.TELEFONE_RESIDENCIAL
OR lead2.TELEFONE_RESIDENCIAL = lead1.TELEFONE_CELULAR
OR lead2.TELEFONE_RESIDENCIAL = lead1.TELEFONE_COMERCIAL
OR lead2.TELEFONE_CELULAR = lead1.TELEFONE_RESIDENCIAL
OR lead2.TELEFONE_CELULAR = lead1.TELEFONE_CELULAR
OR lead2.TELEFONE_CELULAR = lead1.TELEFONE_COMERCIAL
OR lead2.TELEFONE_COMERCIAL = lead1.TELEFONE_RESIDENCIAL
OR lead2.TELEFONE_COMERCIAL = lead1.TELEFONE_CELULAR
OR lead2.TELEFONE_COMERCIAL = lead1.TELEFONE_COMERCIAL
OR lead2.EMAIL = lead1.EMAIL),
lead1.ID
FROM
leads lead1
LIMIT 1000
I need to make this, I an update. I tried but failed.
UPDATE
leads as lead1
SET
ID_FATHER= (SELECT
MIN(IFNULL(lead2.ID_FATHER,lead2.ID))
FROM
leads lead2
WHERE
lead2.TELEFONE_RESIDENCIAL = lead1.TELEFONE_RESIDENCIAL
OR lead2.TELEFONE_RESIDENCIAL = lead1.TELEFONE_CELULAR
OR lead2.TELEFONE_RESIDENCIAL = lead1.TELEFONE_COMERCIAL
OR lead2.TELEFONE_CELULAR = lead1.TELEFONE_RESIDENCIAL
OR lead2.TELEFONE_CELULAR = lead1.TELEFONE_CELULAR
OR lead2.TELEFONE_CELULAR = lead1.TELEFONE_COMERCIAL
OR lead2.TELEFONE_COMERCIAL = lead1.TELEFONE_RESIDENCIAL
OR lead2.TELEFONE_COMERCIAL = lead1.TELEFONE_CELULAR
OR lead2.TELEFONE_COMERCIAL = lead1.TELEFONE_COMERCIAL
OR lead2.EMAIL = lead1.EMAIL)
LIMIT 1000
When I try to run the code, the error, not doing update.
Any suggestions, I've tried other ways, but nothing so far.
_______Updated 07/24/2015_____________RESOLVED_____________
UPDATE
leads as lead,
(SELECT
(SELECT
MIN(IFNULL(lead2.ID_PAI,lead2.ID)) as ID_FATHER
FROM
leads lead2,
empresas empr2
WHERE
empr2.FK_GRUPOS_ID = empr1.FK_GRUPOS_ID
AND(lead2.TELEFONE_RESIDENCIAL = lead1.TELEFONE_RESIDENCIAL
OR lead2.TELEFONE_RESIDENCIAL = lead1.TELEFONE_CELULAR
OR lead2.TELEFONE_RESIDENCIAL = lead1.TELEFONE_COMERCIAL
OR lead2.TELEFONE_CELULAR = lead1.TELEFONE_RESIDENCIAL
OR lead2.TELEFONE_CELULAR = lead1.TELEFONE_CELULAR
OR lead2.TELEFONE_CELULAR = lead1.TELEFONE_COMERCIAL
OR lead2.TELEFONE_COMERCIAL = lead1.TELEFONE_RESIDENCIAL
OR lead2.TELEFONE_COMERCIAL = lead1.TELEFONE_CELULAR
OR lead2.TELEFONE_COMERCIAL = lead1.TELEFONE_COMERCIAL
OR lead2.EMAIL = lead1.EMAIL)) ID_FATHER,
lead1.ID
FROM
leads lead1,
empresas empr1
WHERE
lead1.FK_EMPRESAS_ID = empr1.ID
)AS TD
SET lead.ID_PAI = IFNULL(TD.ID_FATHER,TD.ID)
WHERE lead.ID = TD.ID
Upvotes: 0
Views: 36
Reputation: 6919
try this:
UPDATE lead1
SET
lead1.ID_FATHER= MIN(IFNULL(lead2.ID_FATHER,lead2.ID))
FROM leads as lead1,
leads as lead2
WHERE
lead2.TELEFONE_RESIDENCIAL = lead1.TELEFONE_RESIDENCIAL
OR lead2.TELEFONE_RESIDENCIAL = lead1.TELEFONE_CELULAR
OR lead2.TELEFONE_RESIDENCIAL = lead1.TELEFONE_COMERCIAL
OR lead2.TELEFONE_CELULAR = lead1.TELEFONE_RESIDENCIAL
OR lead2.TELEFONE_CELULAR = lead1.TELEFONE_CELULAR
OR lead2.TELEFONE_CELULAR = lead1.TELEFONE_COMERCIAL
OR lead2.TELEFONE_COMERCIAL = lead1.TELEFONE_RESIDENCIAL
OR lead2.TELEFONE_COMERCIAL = lead1.TELEFONE_CELULAR
OR lead2.TELEFONE_COMERCIAL = lead1.TELEFONE_COMERCIAL
OR lead2.EMAIL = lead1.EMAIL)
Upvotes: 1