sql >> Databáze >  >> RDS >> Mysql

Jak odstranit z výběru v MySQL?

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 .



  1. Jak zkontrolovat, zda tabulka již existuje, než ji vytvoříte v MySQL

  2. Funkce WIDTH_BUCKET() v Oracle

  3. Jak vytvořit tabulku v zobrazení datového listu v Accessu 2016

  4. Datový model životního pojištění