• User

    Concatenare i risultati ricerca+paging

    Ciao a tutti 🙂

    Premetto che riesco a visualizzare i risultati di una SELECT su più pagine.
    Il mio problema è il seguente: da una tabella del DB, diciamo Tabella1, prendo gli id di righe che soddisfano certe condizioni, per ciascun risultato faccio un'altra SELECT su un'altra tabella, diciamo Tabella2, e visualizzo i risultati....il punto è che l'insieme di risultati si ripeto tante volte quanti sono gli id ed il pagin va a farsi friggere.

    La struttura è questa:

    query=prima select

    while (risultato) (
    query2=seconda select
    numrighe=numero righe risultato2
    imposto le var del paging
    while (risultato2) (
    stampo risultati
    ) //fine while interno
    )// fine while esterno

    Come posso concatenare i risultati e poi stamparli?

    Grazie


  • Super User

    non ho capito cosa ti serve però provo a rispondere comunque.

    per "unire" i risultati di due tabelle secondo una chiave si possono usare i join.

    esempio molto semplice:

    tabella ordini:

    id int
    numero_ordine int
    data datetime

    tabella ordini_righe
    id int
    id_ordine int
    etc
    etc

    per estrarre tutti i dati relativi all'ordine 1 (comprese le righe di dettaglio):

    select * from ordini,ordini_righe where ordini_righe.id_ordine = ordini.id

    questa è la sintassi più semplice, però ti consiglio di studiare anche i left join, right join, inner join, outer join.


    altro caso:

    se voglio estrarre dalla tabella ordini solo alcuni estrapolati da condizioni difficili da riprodurre in una query soltanto puoi usare questa sintassi:

    select * from ordini where id in (1,6,8,596658)

    in questo modo verranno estrapolati solo gli ordini:
    1
    6
    8
    596658

    spero di essere riuscito a rispondere alla tua domanda, altrimenti prova a spiegarla in modo diverso.
    magari posta il codice effettivo e non una tua interpretazione altrimenti risulta molto difficile aiutarti.

    p.s. maschera solo le pass di accesso alle risorse, per il resto puoi postarlo tranquillamente.


  • User

    Grazie....credo che la soluzione sia l'inner join...ora sto facendo delle prove....vediamo che succede.
    Praticamente usando l'inner join ottengo ciò che voglio utilizzando una sola query, così posso utilizzare un unico while per stampare le informazioni di ogni riga.
    Se riesco ad uscire, farò sapere.
    Ciao


  • Super User

    benissimo :ciauz:


  • User

    Tymba ti ringrazio ancora....l'INNER JOIN era proprio la soluzione che cercavo. :yuppi:

    Ora però ho un altro quesito...vabbè creo un nuovo topic....

    Ciao :ciauz: