Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [MYSQL] Delete con CTE

  1. #1

    [MYSQL] Delete con CTE

    Salve ho questa query :

    codice:
    WITH lista_id_macchine AS
    (
    
    
    SELECT id FROM macchina where id_tipo_scaffali=3
    
    
    )
    DELETE FROM movimenti_magazzino WHERE id_macchina  NOT IN (SELECT id FROM lista_id_macchine) ;
    Mi da un errore di sintassi che non capisco quale sia

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Così ad occhio non vedo errori di sintassi (magari c'è qualche carattere non stampabile che gli sta dando fastidio)
    Ma se provi a riscriverla senza l'uso della CTE, che non serve in un caso come quello?

    codice:
    DELETE
    FROM movimenti_magazzino
    WHERE id_macchina NOT IN (
       SELECT id
       FROM macchina
       WHERE id_tipo_scaffali = 3
    )
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3

  4. #4
    Devo crearmi delle query per svuotare un db in maniera mirata allora volevo crearmi delle cte ( o forse meglio temporary table ?) da cui prelevare i dati per pulire il database .

    quella è una sola query ne ho altre ma non capisco perchè non funziona

    codice:
    Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DELETE FROM movimenti_magazzino WHERE id_macchina NOT IN (SELECT id FROM list...' at line 6

  5. #5
    non servono CTE, query più classiche come quella di LeleFT vanno benissimo

  6. #6
    Quote Originariamente inviata da optime Visualizza il messaggio
    non servono CTE, query più classiche come quella di LeleFT vanno benissimo
    Ho già spiegato che la cte mi serve per avere lo stesso dato da usare più volte , lo so che esistono le subquery ma non è questo il problema della discussione

  7. #7
    però alla fine fai una subquery (...NOT IN () )

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.