Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di coteaz
    Registrato dal
    Mar 2006
    Messaggi
    365

    [MYSQL] insert into... select help sintassi

    Salve ho questa query che funziona correttamente:

    INSERT INTO galleria_descrizione (SETUP_LINGUA_id) SELECT MAX(SETUP_LINGUA_id) FROM setup_lingua

    al momento dell'insert fa una select sulla tabella setup lignua e prende l'id piu grande.

    ora la tabella galleria_descrizione ha anche un campo che si chiama galleria_id, dovrei effettuare la stessa cosa che faccio con la lingua ma in contemporanea..

    quindi
    inserisci in galleria_descrizione SETUP_LINGUA_id = valore max setup_lingua_id from setup_lingua
    e inserisci GALLERIA_id = valore max galleria_id from galleria

    la butto lì, qualcosa del genere
    INSERT INTO galleria_descrizione (SETUP_LINGUA_id, GALLERIA_id) SELECT MAX(SETUP_LINGUA_id) FROM setup_lingua, SELECT MAX(GALLERIA_id) FROM galleria

    che ovviamente nn funziona!

    attendo nuove grazie!

  2. #2
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    la sintassi della insert e' sbagaliata nn esiste il campo values!!!!

    insert into [nome tabella] ( <attributi> )
    values( <valori> ) ;

    se vuoi estrarre un dato allora fi una sottoquery ma DEVI farla nel campo values oppure usare altra soluzione come sperare le query e gestire via codice il concatenamento,

    insert into [nome tabella] ( <attributi> )
    values( (select ......) ) ;

    Non sono sicuro che funzioni cosi' pero' non ho mai provato.

  3. #3
    Utente di HTML.it L'avatar di coteaz
    Registrato dal
    Mar 2006
    Messaggi
    365
    il fatto è che devo fare in contemporanea due select su due campi diversi e mettere i risultati nell'insert!

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    nn ti conviene separare le 2 query?

    1- effettui le select
    2- recuperi i valori
    3- concateni i valori nella query di insert
    4- esegui al query di insert.

    E' piu' semplice che nn impazzire a fare tutto in una stringa di query.
    Tanto anche se metti tutto in una stringa le query che vengono effettivamente eseguite sono comunque 3( 2 sottoselect e 1 insert).

  5. #5
    Utente di HTML.it L'avatar di coteaz
    Registrato dal
    Mar 2006
    Messaggi
    365
    va be arrangio così anche se preferivo un'unica query grazie

  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    guarda ho detto che non ho provato cmq intanto io proveri con un unico valore e vedi se funziona una cosa del tipo

    INSERT INTO galleria_descrizione (SETUP_LINGUA_id) values( SELECT MAX(SETUP_LINGUA_id) FROM setup_lingua ) ;

    Solo che finche sono valori numerici mi sa che funziona se sono stringhe credo nn funzioni piu' magari dovresti concatenare i caratteri " o '.

  7. #7
    Originariamente inviato da coteaz
    va be arrangio così anche se preferivo un'unica query grazie
    Prova in questo modo:

    codice:
    INSERT INTO galleria_descrizione (SETUP_LINGUA_id, GALLERIA_id) 
    SELECT MAX(SETUP_LINGUA_id), (SELECT MAX(GALLERIA_id) FROM galleria)
    FROM setup_lingua

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it L'avatar di coteaz
    Registrato dal
    Mar 2006
    Messaggi
    365
    Originariamente inviato da piero.mac
    Prova in questo modo:

    codice:
    INSERT INTO galleria_descrizione (SETUP_LINGUA_id, GALLERIA_id) 
    SELECT MAX(SETUP_LINGUA_id), (SELECT MAX(GALLERIA_id) FROM galleria)
    FROM setup_lingua
    grazie funziona!

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.