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

    [JAVA][SQL] resultSet di 2 tabelle

    ciao a tutti!

    allora, le mie tabelle sono:

    quizdomande:
    id counter
    domande memo

    quizrisposte:
    id counter
    domid int(corrisponde e collega le domande alle risposte)
    risposte memo

    la stringa di comando:
    codice:
    String sql="SELECT domanda FROM quizdomande where id=3 union all SELECT risposta FROM quizrisposte where domid=3";
    funge.
    l'output del recordset è
    (quizdomande)Chi è l'aiutante di nonna papera?
    (quizrisposte)Ciccio
    (quizrisposte)Pluto
    (quizrisposte)Topolino
    (quizrisposte)He Man

    funge, poi lo scrivo su un file txt che mi servirà dopo.

    la domanda è questa: adesso riesco a farlo funzionare perchè l'id=3 lo imposto a mano. quando lavoravo con ASP c'era l'eof che mi permetteva di impostare un'istanza do until!eof e lo ripeteva per ogni record fino alla fine della tabella

    posso fare qlc del genere in Java? le operzioni che posso fare col ResultSetMetaData sono rivolte alle colonne, ma non ai singoli record.

    in pratica vorrei che l'output fosse quello come sopra per ogni riga della tabella.

    ho provato con:
    codice:
    String sql="SELECT domanda FROM quizdomande union all SELECT risposta FROM quizrisposte where domid=domanda.id";
    ma ovviemente non funziona (ed è anche brutto a vedersi!!)

    idee???

    Quando si è in un pasticcio tanto vale goderne il sapore!

  2. #2
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    in pratica stai cercando il corrispettivo in Java dell'EOF di ASP?

  3. #3
    esatto, ho bisogno di qualche comando che imposti un ciclo ricorsivo di cui però non so la fine precisamente... e quindi devo impostare la fine del ciclo alla fine del file, che è variabile perchè ogni volta si carica dei dati da altre fonti...

    forse non sono molto chiara, ma comunque hai centrato il problema!!!

    Quando si è in un pasticcio tanto vale goderne il sapore!

  4. #4
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    per la gestione dei Record ti conviene utilizzare il ResultSet. Parte da una posizione antecedente al primo record trovato ed ha il metodo next() che restituisce false quando non ci sono più record.
    Quindi puoi fare una roba così:

    Statement stmt=connessione.createStatement();
    ResultSet rs=stmt.executeQuery(query);

    while(rs.next()){
    //quel che devi fare
    }

  5. #5
    ok, grazie, proprio quello che mi ci voleva...

    ... adesso ho solo un ultimo quesito:

    per ora, impostando la stringa sql
    codice:
    SELECT domanda FROM quizdomande where id=4 union all SELECT risposta FROM quizrisposte where domid=4"
    ovviamente il result era quello che volevo.

    adesso devo fare la stessa cosa, ma senza specificare l'id, cioè qualcosa tipo

    codice:
    select domanda from quizdomande union all select risposta from quizrisposte where id=quizdomande.domid
    ma ovviamente non funge

    devo collegare i campi quizrisposte.risposta che hanno l'id uguale a quello di quizdomande.id con le rispettive quizdomande.domanda in modo che per ogni domanda ci siano 4 risposte e risulti un output:

    domanda(id=1)
    risp(id=1)
    risp(id=1)
    risp(id=1)
    risp(id=1)
    domanda(id=n)
    risp(id=n)
    risp(id=n)
    risp(id=n)
    risp(id=n)

    ecc.. ecc... :master:

    Quando si è in un pasticcio tanto vale goderne il sapore!

  6. #6
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    prova:

    SELECT domanda,risposta
    FROM quizdomande,quizrisposte
    WHERE quizdomande.id=domid

  7. #7
    no, non funziona perchè non c'è un indice precisato...
    secondo me dovrei fare qlc tipo
    -selezionare le domande e i loro id
    -per ogni domanda associata ad un id cercare le risposte che hanno id uguale

    per la prima non c'è prob:
    codice:
    SELECT id, domanda FROM quizdomande
    e ci siamo.

    poi col resultSet dovrei creare un array lungo quanto i numeri di id presenti e fare
    codice:
    for(x=0;x<arrayNumeriId.length;++)
     String sql2="SELECT risposte FROM quizrisposte WHERE id="+arrayNumeriId[x];
    :master:

    ma forse devo organizzare meglio il tutto! che ne pensi?

    Quando si è in un pasticcio tanto vale goderne il sapore!

  8. #8
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    meglio che organizzi meglio il tutto

    Cmq ho modificato un attimo la query che ti avevo scritto...non funziona neanche quella?

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.