468x60

lunedì 27 gennaio 2014

Mysql error 1093 - Can't specify target table for update in FROM clause

Query del seguente tipo non possono essere eseguite su MySQL, perchè in una query DELETE non è possibile specificare la stessa tabella sia in FROM che in WHERE:
DELETE FROM story_category
WHERE category_id NOT IN (
        SELECT DISTINCT category.id AS cid FROM category 
        INNER JOIN story_category ON category_id=category.id
)
Bisogna perciò modificare la query nel seguente modo:
DELETE FROM story_category
WHERE category_id NOT IN (
    SELECT cid FROM (
        SELECT DISTINCT category.id AS cid FROM category 
        INNER JOIN story_category ON category_id=category.id
    ) AS c
)

Nessun commento:

Posta un commento

468x60

Cerca su Google

Cerca nel Blog con Google