SELECT
(pod)dotazy vrátí výsledek sady . Musíte tedy použít IN
, nikoli =
ve vašem WHERE
doložka.
Navíc, jak je uvedeno v tato odpověď
nemůžete upravit stejnou tabulku z poddotazu v rámci stejného dotazu. Můžete však buď SELECT
pak DELETE
v samostatných dotazech nebo vnořte další poddotaz a alias výsledku vnitřního poddotazu (i když to vypadá dost otřepaně):
DELETE FROM posts WHERE id IN (
SELECT * FROM (
SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 )
) AS p
)
Nebo použijte spojení jak navrhuje Mchl .