Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101

    join sulla stessa tabella

    Ciao a tutti,
    il mio problema è fare un join sulla stessa tabella.
    Mi spiego meglio, ho una tabella del tipo

    ID, MENU, PADRE, LINK

    nella colonna padre ci va un numero di del campo ID per indicare di chi è figlio quel record.
    Io devo fare una query che mi dica come si chiama il padre di un determinato record e quindi ho fatto la seguente query da access

    SELECT menu.id, menu.menu, menu.padre, menu.link, menu_1.menu FROM menu LEFT JOIN menu AS menu_1 ON menu.padre = menu_1.id WHERE menu.id=27"

    L'ho privata in asp ma non funziona, qualcuno sà aiutarmi?
    Spero di essere stato chiaro

  2. #2
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    SELECT menu.id, menu.menu, menu.padre, menu.link, menu_1.menu as menu1
    FROM menu
    INNER JOIN menu AS menu_1
    ON menu.padre = menu_1.id
    WHERE menu.id=27
    Tutti vogliono parlare, nessuno sa ascoltare.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101
    Ciao grazie Gioba66

    Non funziona, mi dà il seguente errore

    Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
    [Microsoft][Driver ODBC Microsoft Access] Tipo non corrispondente nell'espressione.

  4. #4
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    metti un response.write sql
    response.end

    prima della riga che esegue la query sql (se si chiama così)
    e posta il risultato
    Tutti vogliono parlare, nessuno sa ascoltare.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101
    Mi scrive questo


    SELECT menu.id, menu.menu, menu.padre, menu.link, menu_1.menu as menu1 FROM menu INNER JOIN menu AS menu_1 ON menu.padre = menu_1.id WHERE menu.id=35

  6. #6
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    se la esegui direttamente in access che cosa ti dice?
    Tutti vogliono parlare, nessuno sa ascoltare.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    1,003
    Se ho capito bene, tu devi cavarti fuori i record che hanno lo stesso contenuto nei campi ID e PADRE e tu specifichi quale numero?

    SELECT id, padre, link, menu FROM menu WHERE id = padre AND id = 27

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101
    Scusatemi ma sono dovuto andare via.

    Dunque rispondendo a gioba66, se la query la provo in access funziona perfettamente

    Per fare maggiore chiarezza faccio un esempio di quello che voglio ottenere.

    Ho due record

    ID, MENU, PADRE, LINK

    1, Prodotti, , prodotti.asp
    2, Macchina1, 1, macchina.asp

    praticamente nel record due ho specificato mettendo "1" nel campo "padre" che è figlio dell'ID "1".
    Ora voglio fare una query che mi dia il record 2 e che mi dica come si chiama il padre quindi

    2, Macchina1, 1, macchina.asp, Prodotti

    Spero di essere stato un pò più chiaro.

    grazie ragazzi

  9. #9
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    se funziona in access, allora è un problema di come leggi e/o scrivi i dati in ASP
    posta il codice che usi nella pagina asp
    Tutti vogliono parlare, nessuno sa ascoltare.

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101
    Questo è il codice
    codice:
    <%@ LANGUAGE = JScript %>
    
    <% 
    var id = "";
    var menu = "";
    var padre = "0";
    var link = "";
    var nomePadre = "";
    
    var id = String(Request.QueryString("id"));
    		
    var ADOConn = new ActiveXObject("ADODB.Connection");
    ADOConn.Open(strConn);
    	
    var sql = "SELECT menu.id, menu.menu, menu.padre, menu.link, menu_1.menu as menu1 FROM menu INNER JOIN menu AS menu_1 ON menu.padre = menu_1.id WHERE menu.id=" + id;
    //Response.Write(sql);
    //Response.end;
    		
    var ris = ADOConn.Execute(sql);
    	
    id = String (ris("id"));
    menu = String (ris("menu"));
    padre = String (ris("padre"));
    link = String (ris("link"));
    nomePadre = "ancora non riesco a pescarlo con sql";	
    ADOConn.Close();
    Response.Write(id + "
    " + menu + "
    " + padre + "
    " + link + "
    " + nomePadre);
    %>
    Chiaramente chiamo la pagina con prova.asp?id=38 e chiaramente l'id è presente nel database

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.