Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Query con 2 tabelle...

  1. #1

    Query con 2 tabelle...

    Ho due tabelle:

    La prima principale contiene i dati dell'utente registrato x cui:

    Tabella_utenti : 1) Id, Nome, Cognome,Città, Provincia, Name, Code, ultimoaccesso etc etc

    Utenti_accettati : 2) Name, Code, Codaccettato

    Descrizione tabella Utenti_accettati:

    Name: Username dell'utente che ha aggiunto un contattato (es. rambo88)

    Code: Username dell'utente che è stato aggiunto (es. monica)

    Codaccettato: Codice dell'utente che è stato aggiunto (es. monica987654321)

    ********************************************

    Mi sono informato sulle JOIN ma non riesco ad applicarla...

    in sostanza il mio scopo era di mostrare con una solo query direttamente gli utenti che sono stati aggiunti dal contatto (es.rambo88) e metterli in ordine di ultimoaccesso.

    Fino ad oggi ho sempre usato una query alla tabella Utenti_accettati in questo modo:

    sql = "SELECT * FROM Utenti_accettati WHERE code = '" & str_users_code & "' ORDER BY name desc"
    Set rs_userlist =Server.CreateObject("ADODB.Recordset")
    rs_userlist.Open sql, adoCon, 3, 3
    e dopo questa prima query...ho fatto un ciclo do while...
    al cui interno ho eseguito una seconda query alla Tabella_utenti così:
    rs_utentisql = "SELECT * FROM Tabella_utenti where code ='" & rs_userlist("codaccettato") & "' ORDER BY ultimoaccesso DESC"
    Set rs_utenti = Server.CreateObject ("ADODB.RecordSet")
    rs_utenti.open rs_utentisql,adoCon, 3,3
    Si potrebbe ottenere subito lo stesso risultato con una query sola?

    Grazie,

    ciao

  2. #2
    Ciao, ti indico una forma diciamo più generale per fare una join

    codice:
    Sql = "SELECT Tab1.*, Tab2.* FROM Tab1 INNER JOIN Tab2 ON Tab1.id = Tab2.id WHERE Campo= '"&valore&"' ORDER BY Valore"
    Logicamente devi sostituire i vari valori e i nomi delle tabelle.
    Cosa fondamentale è che devi ben progettare il db, addesso non so il tuo com'è progettato ma per fare una join devi prevedere nella Tab2 una chiave esterna, una relazione tra le tabelle.

    Spero di esserti stato utile.
    Ciao Francesco

  3. #3
    per fare una join devi prevedere nella Tab2 una chiave esterna, una relazione tra le tabelle
    ma cosa intendi con una chiave esterna?

    grazie kmq per il suggerimento, fra poco proverò a farla e ti farò sapere

  4. #4
    Sinceramente la risposta non è proprio semplice, allora se consideri 2 tabelle A e B
    nella prima tu metti una chiave primaria IDTab1
    Nella tabella B consideri oltre alla chiave primaria IDTab2 una secondaria IDTab1.
    il quale è un intero lungo e mette in relazione le due tabelle.
    Serve a legare i dati della tabella B a quelli della tabella A.

    Poi le ricerche le fai sulle tabelle andando ad incrociare le due chiavi.

    Da quello che hai scritto tu credo, non voglio sbagliare, che non hai considerato una chiave esterna.

    Ciao

  5. #5
    ho provato a realizzare la query...

    ma il problema principale rimane nell ORDER BY...non riesco ad incrociare i dati e metterli in ordine di ultimoaccesso...ma me li pone sono per ordine di aggiunta agli amici

    forse una join x come voglio realizzarla non è possibile!

    riguardo alla chiave esterna ho le idee un po' confuse

  6. #6
    Scusami ma la query funziona?
    Ti da il risultato voluto?

    order by DESC/ASC dipende da quello che vuoi

    Se si devi lavorare solo sull'ordinamento.

    Per quello che riguarda la chiave esterna prova a fare una ricerca su internet sicuramente trovi spiegazioni migliori delle mie.
    Ciao

  7. #7
    si avevo già provato tutto...ma siccome mi vien difficile spiegarti quello che vorrei dirti, riassumo dicendo che non vabene eheh ciaoo

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.