Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Insert da query

  1. #1
    Utente di HTML.it L'avatar di ilGuglia
    Registrato dal
    Dec 2015
    residenza
    Sicilia
    Messaggi
    46

    Insert da query

    Buongiorno, sono abbastanza nuovo e questo è il mio primo topic "serio"

    PREMESSA
    Le mie nozioni di SQL si limitano a quelle scolastiche (industriale con indirizzo informatica), perdonate l'ignoranza.

    Sto usando un database Postgres e sto sviluppando (parolone) un programmino in java che inserisca i valori su una tabella tramite il risultato di una select. Avendo fatto la select e poi, sul resultset, costruito l'insert, il mio mentore mi ha detto che avrei potuto fare l'insert direttamente col risultato della query precedente e mi ha mostrato qualche esempio.
    Il problema è che nella tabella io non devo inserire solo l'id_cliente (risultato della query) ma altri valori e l'id appena citato deve comparire 3 volte assieme agli altri valori (due dei quali variabili). Mi chiedevo se anche così fosse possibile farlo in un unico insert+query.


    Copincollo la porzione di codice interessata

    String queryInserimento = "SELECT c.id_cliente FROM public.cliente c JOIN public.alert ON c.id_cliente=alert.id_cliente WHERE c.id_cliente<>alert.id_cliente AND c.id_cliente::text not like '%0'";
    ResultSet res = d.executeQuery(queryInserimento);
    String query;
    Statement stm = con.createStatement();
    while (res.next()){
    System.out.println("MACIAO"); //prova in output per vedere se è entrato nel ciclo
    int []saldo={200,100,50};
    long cl=res.getLong("id_cliente");
    for(int i=1; i<4; i++){
    query = "INSERT INTO alert (numero_alert, id_cliente, saldo_alert, inviato) VALUES (" + i + ", " + cl + "," + saldo[i - 1] + ", TRUE)";
    stm.execute(query);
    }
    }

    Grazie a tutti in anticipo

    Baci, ilGuglia.

    P.S.: (credo non si possa fare però, nel dubbio, chiedo...)
    Ultima modifica di ilGuglia; 18-12-2015 a 10:44

  2. #2
    di seguito la teoria

    INSERT INTO (colonna1, colonna2, ... , colonnaN) SELECT (stesso elenco colonne) FROM Tabella WHERE condizioni

    qui http://www.w3schools.com/sql/sql_insert_into_select.asp altre info

  3. #3
    Utente di HTML.it L'avatar di ilGuglia
    Registrato dal
    Dec 2015
    residenza
    Sicilia
    Messaggi
    46
    Quote Originariamente inviata da optime Visualizza il messaggio
    di seguito la teoria

    INSERT INTO (colonna1, colonna2, ... , colonnaN) SELECT (stesso elenco colonne) FROM Tabella WHERE condizioni

    qui http://www.w3schools.com/sql/sql_insert_into_select.asp altre info
    Questo lo so, il punto è che se io ottengo (esempio) TIZIO e CAIO dalla select, dovrò inserire

    |TIZIO | 1 | ... | ... |
    |TIZIO | 2 | ... | ... |
    |TIZIO | 3 | ... | ... |
    |CAIO | 1 | ... | ... |
    |CAIO | 2 | ... | ... |
    |CAIO | 3 | ... | ... |

    nell'altra tabella... è possibile farlo con quel metodo?

  4. #4
    se tu strutturi la SELECT in modo tale che ti restituisca già quei valori la risposta è sì. Se invece non riesci dovrai fare n insert

  5. #5
    Utente di HTML.it L'avatar di ilGuglia
    Registrato dal
    Dec 2015
    residenza
    Sicilia
    Messaggi
    46
    Quote Originariamente inviata da optime Visualizza il messaggio
    se tu strutturi la SELECT in modo tale che ti restituisca già quei valori la risposta è sì. Se invece non riesci dovrai fare n insert
    Allora ti pongo la domanda terra terra da ignorantazzo (quale sono)... si può fare una select che restituisca tre volte lo stesso valore?

  6. #6
    devi fare una SELECT che metta la tabella principale in JOIN con un'altra che contiene le informazioni da ripetere (nel tuo caso i valori 1, 2 e 3)

  7. #7
    Utente di HTML.it L'avatar di ilGuglia
    Registrato dal
    Dec 2015
    residenza
    Sicilia
    Messaggi
    46
    Perfetto... grazie mille

  8. #8
    posta il codice, magari è utile per altri sviluppatori

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.