Visualizzazione risultati 1 fino 4 di 4

Discussione: unire i risultati di due query

  1. #1
    Guest

    Unhappy unire i risultati di due query

    ho questa esigenza:
    ->selezionare dal db delle informazioni su delle immagini
    ->per ogni immagine selezionare informazioni sull'utente che l'ha messa.

    c'è un modo per risparmiare sulle query da eseguire?
    ossia:
    posso per ogni immagine che tira fuori dal db fargli eseguire un "SELECT * FROM user WHERE idsalvato_nell'immagine=idutente"
    ma così per ogni immagine presente esegue una query al db 500 immagini sul sito : 500 queries.
    c'è un modo facendogli eseguire la seconda query senza il WHERE ("SELECT * FROM user ) di dirgli poi che cerchi nell'array che gli viene fuori le informazioni corrispondenti all'utente??
    non so se sono stato chiaro.
    grazie per il vostro tempo.

  2. #2
    Guest

    Predefinito

    nn ti basta creare un natural join? cioè:
    hai 2 tabelle una con le immagini e una con gli utenti, (guisto?) ogni utente ha il suo codice o ID(come lo vuoi chiamare) che sarà la chiave primari(se nn c'è un'altra), nella tabella delle immagini c'è un campo idutente(cioè dell'utente che ha messo l'immagine) che sarà la chiave esterna, in questo modo c'è la relazione tra le due tabelle. Ora che hai la relazione fra le 2 tabelle basta che fai: SELECT quello che vuoi FROM tabella img natural join tabella clienti.
    è ovvio che se nelle 2 tabelle ci sono campi con lo stesso nome dove c'è "quello che vuoi" devi specificare a quale tabella fare riferimento.
    Spero di averti aiutato in questo modo fai solo una query con il tuo script php magari prima fai vedere l'immagine e dopo se si vuole far vedere chi l'ha mandata nn occorre fare una seconda interrogazione l'hai già fatta prima basta recuperare i dati restituiti dalla query
    ciao

  3. #3
    Guest

    Predefinito

    ho capito perfettamente, alla fine è lo stesso metodo che usano per i messaggi in questo o in un qualsiasi altro forum no? per ricavare ad es l'avatar la firma il nick non eseguono mica una query per messaggio no?


    ad ogni modo questo funziona anche se lo stesso utente ha inserito più di un'immagine??? ossia quando poi vado ad eseguire mysql_fetch_array() mi restituisce più volte i dati sullo stesso utente se c'erano più immagini sue vero?
    Ultima modifica di cornaro : 12-09-2005 alle ore 13.40.25

  4. #4
    Guest

    Predefinito

    certo
    devi pensare che che il natural join (come inner join se non c'è la chave primaria) fa l'unione di due tabelle che hanno in relazione un campo(che ovviamente deve essere dello stesso tipo). Per cui ti viene restituita una tabella che ha come campi nei record quello che tu hai chiesto nel select è perciò ovvio che se ci sono due immagini messe da uno stesso utente nella tabella di risultato ti viene fuori un record che appartiene ad una immagine con relativo nome dell'utente per es., e un secondo record con la seconda immagine con relativo nome dell'utente che anche se è uguale a quello di prima nn fa differenza e come se fossero due nomi separati semplice no?????
    ma questo nn e poi tanto un probl mi pare no?
    ciao

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •