Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Problema inner join e variabili

    Ciao a tutti,
    ho questa SELECT
    Codice PHP:
    SELECT tabella1.*, tabella2.*, * FROM tabella2 INNER JOIN tabella1 ON tabella1.IDCATEGORIA tabella2.IDCATEGORIA WHERE tabella2.IDCATEGORIA=10 
    Dove che non è statico ma ricavata da un precedente recordset.
    Ora se faccio un confronto IF di questo tipo:

    Codice PHP:
    If rsCategoria("tabella1.IDCATEGORIA") = rsCategoria("tabella2.IDCATEGORIA"Then 
    Response
    .Write("Si")
    Else
    Response.Write("No")
    End if 
    Mi dà questo errore
    Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto
    Quello che non capisco è che se lancio la query in Access i dati ci sono e vengono visualizzati! :master:

    Dove sbaglio? La query era un pò diversa poi l'ho rifatta da Access ma non cambia nulla...

  2. #2
    Non puoi specificare la tabella quando usi un recordset . . .

    devi dare alias differenti ai campi che estrai

  3. #3
    Uhmm in parole semplici? Mi sto cuocendo la testa cò sta cosa...

    Intendi dire non posso fare questo? rsCategoria("tabella1.IDCATEGORIA")

    Come lo faccio il confronto?

  4. #4
    In poche parole estrai i dati dal db mettili in 2 variabili X e Y e poi fai il confronto (x=y) ^___^

  5. #5
    Uhmm non cambia nulla e l'errore è sempre lo stesso... (Impossibile ...ecc)

    Codice PHP:
    x=rsCategoria.Fields.Item("tabella1.IDCATEGORIA").value
    y
    =rsCategoria.Fields.Item("tabella2.IDCATEGORIA")
    Response.Write("SOTTOCATEGORIE: " "
    "
    )
    Response.Write("CATEGORIE: " "
    "
    )                
    Response.End() 
    :master:

  6. #6
    Originariamente inviato da Ir0nFl4m3
    In poche parole estrai i dati dal db mettili in 2 variabili X e Y e poi fai il confronto (x=y) ^___^
    Non è quello che intendevo

    Tu non puoi usare espressioni tipo questo :

    rsCategoria("tabella1.IDCATEGORIA")

    in cui tu fai riferimento a tabella->nome campo

    con i record set tu puoi solo far riferimento al nome campo :

    rsCategoria("IDCATEGORIA")

    In questo modo l'errore di prima non lo hai + , ma avrei un altro
    errore visto che il nome del campo è ambiguo perchè compare 2 volte come risultato
    della query . . .

    Motivo per cui devi specificare ogni singolo campo che devi estrarre nella query ,
    assegnando l'alias nel caso in cui il campo è ripetuto es :

    select a.idcategoria id1 , b.idcategoria id2 from tbl1 sa a tbl2 as b . . . .

    Claro ???

  7. #7
    Codice PHP:
    "SELECT tabella1.IDCATEGORIA AS idcat, tabella2.IDCATEGORIA AS idsottocat FROM tabella2 INNER JOIN tabella1 ON tabella2.IDCATEGORIA = tabella1.IDCATEGORIA WHERE tabella2.IDCATEGORIA=" categoria 
    Ora se provo a fare questo:

    Codice PHP:
    Response.Write("SOTTOCATEGORIE: " idsottocat "
    "
    )
    Response.Write("CATEGORIE: " idcat "
    "

    Non ricevo nessun errore ma neanche un valore di ritorno... le variabili sono vuote :master: dove sbaglio? Forse la SELECT (però provandola in Access non ho errori...)?

  8. #8
    con quelle istruzioni stai stampando il valore delle variabili che non son valirizzate,
    tu devi stampare quello contenuto nel recordset


    Response.Write("SOTTOCATEGORIE: " & rsCategoria("idsottocat") & "
    ")
    Response.Write("CATEGORIE: " & rsCategoriaidcat") & "
    ")

  9. #9
    ah ecco infatti ora funziona Grazie!

  10. #10

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.