Question

UPDATE HD_TICKET
set HD_TICKET.CC_LIST =
    case 
    when HD_TICKET.CC_LIST = '' then (SELECT USER.EMAIL, HD_TICKET.CUSTOM_FIELD_VALUE11
FROM USER)
    when HD_TICKET.CC_LIST is null then (SELECT USER.EMAIL, HD_TICKET.CUSTOM_FIELD_VALUE11
FROM USER)
    else  CONCAT(HD_TICKET.CC_LIST, ", ", ((SELECT USER.EMAIL FROM USER))) end
where 
USER.FULL_NAME = HD_TICKET.CUSTOM_FIELD_VALUE11 and (HD_TICKET.ID in (<TICKET_IDS>))

I have an update that returns the error Unknown column 'USER.FULL_NAME' in 'where clause'. I have checked the spelling and verified the tables but I cant seem to get around the error. Please help?

Was it helpful?

Solution 2

Your query is a bit off... I suspect what you really mean to do is something more like a normal update join;

UPDATE HD_TICKET
JOIN USER ON USER.FULL_NAME = HD_TICKET.CUSTOM_FIELD_VALUE11
SET HD_TICKET.CC_LIST =
  CASE WHEN HD_TICKET.CC_LIST = '' OR HD_TICKET.CC_LIST IS NULL THEN USER.EMAIL 
       ELSE CONCAT(HD_TICKET.CC_LIST, ", ", USER.EMAIL)
  END
WHERE HD_TICKET.ID in (<TICKET_IDS>)

OTHER TIPS

you need to join the table USER .Try that.

UPDATE HD_TICKET 
INNER JOIN USER ON USER.FULL_NAME = HD_TICKET.CUSTOM_FIELD_VALUE11
set HD_TICKET.CC_LIST =
    case 
    when HD_TICKET.CC_LIST = '' 
         then (SELECT USER.EMAIL, HD_TICKET.CUSTOM_FIELD_VALUE11 FROM USER)
    when HD_TICKET.CC_LIST is null 
         then (SELECT USER.EMAIL, HD_TICKET.CUSTOM_FIELD_VALUE11 FROM USER)
    else  CONCAT(HD_TICKET.CC_LIST, ", ", USER.EMAIL) end
 where  HD_TICKET.ID in (<TICKET_IDS>)

edit:

in this SELECT USER.EMAIL FROM USER you are selecting many emails . you have to make limit or specify the email by where clause to return one email

 else  CONCAT(HD_TICKET.CC_LIST, ", ", ((SELECT USER.EMAIL FROM USER LIMIT 1 )))

or use this

 GROUP_CONCAT(USER.EMAIL)

or this

 CONCAT(HD_TICKET.CC_LIST, ", ", USER.EMAIL)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top