I am having trouble getting the following query to work...
/*SET APPROPRIATE DATABASE CONTEXT*/
USE IDMAS_VESSELS;
/*BEGIN UPDATE SCRIPT*/
UPDATE INSPECTION i SET i.WALL_LOSS = 
    CASE WHEN i.STATUS IN('A','R')
         THEN CASE WHEN i.INSPECTION_NO =   (
                                            SELECT INSPECTION_NO 
                                            FROM (SELECT * FROM INSPECTION) AS insp
                                            /*CAN REFER TO TABLE IN UPDATE CLAUSE*/
                                            WHERE EQUIPMENT_ID = i.EQUIPMENT_ID AND CML_ID = i.CML_ID 
                                            ORDER BY INSPECTION_DATE ASC, INSPECTION_NO
                                            LIMIT 1
                                            )
                   THEN i.NOMINAL_WALL_THICKNESS - i.MINIMUM_REMAINING_WALL_THICKNESS
                   ELSE     (
                            SELECT  MINIMUM_REMAINING_WALL_THICKNESS
                            FROM    (
                                    SELECT @rank:=@rank+1 AS DATE_POSITION, INSP.*
                                    FROM    (SELECT * FROM INSPECTION) AS insp
                                    /*CODE FAILS AT THIS LINE*/
                                    /*CAN NOT REFER TO TABLE IN UPDATE CLAUSE*/
                                    WHERE insp.EQUIPMENT_ID = i.EQUIPMENT_ID AND insp.CML_ID = i.CML_ID
                                    ) as DATA_WITH_DATE_POSITIONS
                            WHERE DATE_POSITION = 1
                            ) - i.MINIMUM_REMAINING_WALL_THICKNESS
              END
        ELSE NULL
    END
WHERE i.EQUIPMENT_ID = '%';
Upon running I get the following error:
Error Code: 1054. Unknown column 'i.EQUIPMENT_ID' in 'where clause'
I have concluded that MySQL will not let you refer to the table in the UPDATE Clause when it is embedded within multiple sub queries. However, you can refer to it when embedded in only one sub query (as identified in the notes within the code above).
So my question is how do I refer to the table in the UPDATE clause when it is embedded in multiple sub queries?
 
     
    