Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    317

    [MySql] chiedo aiuto veloce su una query

    Ciao ragazzi, potete darmi una mano con un'istruzione sql ??

    Devo fare sostanzialmente un UPDATE di un campo in una tabella (tab1) dove gli id sono precisamente

    SELECT id from tab1 left join tab2 on tab2.id=tab1.tab2Id where tab2.campo1='qualcosa' or tab2.campo2='qualcosaltro' and tab1.enable=1

    Da questa query ho 333 risultati e per ciascuno di questi devo settare tab1.movFlag=1
    quindi ho pensato di fare

    UPDATE tab1 SET movFlag=1 WHERE id IN
    (
    SELECT id from tab1 left join tab2 on tab2.id=tab1.tab2Id where tab2.campo1='qualcosa' or tab2.campo2='qualcosaltro' and tab1.enable=1
    )

    Ma mi da un errore :
    You can't specify target table tab1 for update in FROM clause.

    Come risolvo, dove sbaglio ??
    Grazie per l'aiuto...

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    La tua select mi sembra piuttosto a rischio, visto che hai una colonna id su entrambe le tabelle. Inoltre, vista la WHERE, non capisco perché usare una left join.
    Comunque prova così:
    codice:
    UPDATE tab1 left join tab2 on tab2.id=tab1.tab2Id 
    SET tab1.movFlag = 1
    where tab2.campo1='qualcosa' or tab2.campo2='qualcosaltro' and tab1.enable=1

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.