Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Query annidata - Update e Max

    Potete darmi una dritta su questa query annidata che non funziona?



    UPDATE articoli SET ordine = (Select MAX(ordine) AS massimo From articoli WHERE tipo = 1 AND anno = 2009) WHERE id = 186



    In pratica dovrei assegnare al campo 'ordine' del record 186 il valore massimo presente nella colonna 'ordine' della medesima tabella...

    Invece, se scrivo direttamente il valore funziona es 500:

    UPDATE articoli SET ordine = 500 WHERE id = 186




    grazie in anticipo!
    1,2,3,4,5,10,100 passi!

  2. #2

    Re: Query annidata - Update e Max

    L'errore mysql è il seguente:

    #1093 - You can't specify target table 'articoli' for update in FROM clause
    1,2,3,4,5,10,100 passi!

  3. #3
    forse la subquery deve puntare ad un'altra tabella? VVoVe:
    1,2,3,4,5,10,100 passi!

  4. #4
    l'errore sembra indicare che nel campo form della subquery non puoi indicare 'articoli', quindi penso te abbia visto giusto, gli crea problemi se punti a se stesso in quel modo.

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Prova così

    codice:
    UPDATE articoli SET ordine = (
    select * from (select MAX(ordine) From articoli WHERE tipo = 1 AND anno = 2009) as tab1)
    where id = quello_che_vuoi

  6. #6
    Originariamente inviato da goikiu
    l'errore sembra indicare che nel campo form della subquery non puoi indicare 'articoli', quindi penso te abbia visto giusto, gli crea problemi se punti a se stesso in quel modo.




    speravo si potesse.


    allora devo fare due query distinte...


    grazie ciao
    1,2,3,4,5,10,100 passi!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.