Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    63

    lanciare una query all'interno di un'altra query

    salve, ho bisogno di una consulenza, vorrei sapere se è possibile lanciare una query, all'interno della ricerca di un'altra query. Cerco di essere più chiaro.
    io lancio una ricerca su una tabella, posso all'interno del "WHILE " lanciare un'altra query di ricerca. Qui sotto un esempio

    codice:
    stmt=conn.createStatement();
    rslt=stmt.executeQuery("SELECT * FROM miatabella;");
    rsmd=rslt.getMetaData();
    
    while(rslt.next()){ 
    
    lanciare qui ("SELECT * FROM tabella2 WHERE pippo = pluto;");
    
    
    }// fine while
    e se si la seconda quesry ( lanciare qui ("SELECT * FROM tabella2 WHERE pippo = pluto;"); )
    come deve essere formulata.

    saluti Roberto

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    spiega meglio, perchè si potrebbe ottimizzare tutto con un'unica query opportuna: tipo con una sottoquery, una UNION, una JOIN o per esigenze particolari, anche con la creazione di una TEMPORARY TABLE su cui andare ad eseguire ulteriori query.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    63

    lanciare una query all'interno di un'altra query

    ciao, allora dalla prima query, quella che lancia il ciclo while, cioè questa :
    codice:
    rslt=stmt.executeQuery("SELECT * FROM miatabella;");
    ricavo un campo numerico da un record di una tabella A, con la seconda query, quella dentro il ciclo while :
    codice:
    while(rslt.next()){ 
    
    lanciare qui ("SELECT * FROM tabella2 WHERE pippo = pluto;");
    
    
    }// fine while
    vado ad estrarre tutti i record, della tabella B, che hanno il campo numerico con lo stesso valore. Ho già provato con " JOIN " e funziona, il problema è che mi ripete tante righe quanti sono i record della tabella B, ripetendo anche il record della tabella A, invece io vorrei associare ad un record della tabella A i vari record della tabella B, anche visivamente
    spero di essermi espresso chiaramente, saluti Roberto

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Bhè, non se obbligato a tirare fuori tutti i record di A nella JOIN. E puoi anche fare una subquery (non ricordo esattamente da quale versione di MySQL sono supportate, ma di sicuro da una 4.x in poi):

    codice:
    SELECT * FROM tabella_2 WHERE campo = (SELECT valore FROM tabella_1 [WHERE ...] [ORDER BY ...])
    altrimenti nulla toglie di fare tante query quante ti servono... ma se puoi evitare è meglio (soprattutto se si tratta di una procedura che potrebbe essere ripetuta svariate volte e da più utenti, magari anche contemporaneamente)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.