Visualizzazione dei risultati da 1 a 10 su 10

Discussione: ASP e JOIN Mysql

  1. #1

    ASP e JOIN Mysql

    Ciao a tutti. Pensavo di aver già postato questa domanda ma è sparita... quindi posto di nuovo e sarò meno preciso perchè sono stanco!!!

    Vengo al dunque. Ho asp e database mysql. Se faccio una query con un join tra due tabelle del database aventi un campo con lo stesso nome come posso leggere il campo corretto dal recordset??
    In sql si fa nometabella.nomecampo. Con asp solitamente uso rs("nomecampo") dove rs è il mio recordset. Non posso fare rs("tabella.nomecampo") perchè non esiste. Ho notato che il recordset che viene generato, qualora le due tabelle abbiano almeno un campo con lo stesso nome, contiene di fatto ben 2 o più colonne con lo stesso nome. Come si fa quindi a fare riferimento solo ad una di esse? Più che altro si può??!!!

    Ho visto che potrei usare le collezioni dell'oggetto recorset con gli indici numerici ma è un pacco atomico!!! Non c'è un modo più veloce e leggibile??

    Grazie mille a tutti in anticipo e 30 e lode a chi risolve!!!

  2. #2
    usa gli alias per i campi con lo stesso nome

  3. #3
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    mi sembra molto strano in quanto Mysql genera un errore quando si presentano due campi con lo stesso nome, e non lascia eseguire la query fino a quando nell'SQL non usi degli ALIAS e risolvi le ambiguita....

  4. #4
    Sul serio Mysql genera errore?? Sinceramente non ci o mai fatto caso. Ha sempre funzionato. Comunque gli alias non si possono usare solo per le tabelle?? Se mi dite così appena ho tempo ci provo senz'altro. Grazie per ora!!!

  5. #5
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    a me pare proprio che generi un errore sempre.

    Gli alias servono per i campi... come fanno ad esserci due tabelle con lo stesso nome???

  6. #6
    Hai ragione anche te ma noi all'università più che altro li usavamo per abbreviare i nomi delle tabelle e mi sembrava addirittura che sui campi mi avesse generato un errore quando ci provai.

    Ho provato alla buona la tua soluzione e sembra funzionare però è scomodo dover mettere nella select tutti i nomi dei campi per poter usare gli alias e non cavarsela con un semplice select *.
    Poi di fatto, nonostante abbia 2 campi nelle due tabelle con lo stesso nome, il join funziona benissimo e non da alcun errore. Anche all'università non ci preoccupavamo mai di quello. Sql da errore (se non ricordo male) se nella select metto SELECT CAMPO FROM T1 JOIN T2 qualora CAMPO sia presente in tutte e due le tabelle. In quei casi io ho sempre fatto SELECT T1.CAMPO o T2.CAMPO ed ecco che il DBMS non fa una piega!
    Naturalmente T1 e T2 sono i nomi di 2 tabelle...

    Se fai SELECT * FROM T1 JOIN T2, anche se ci sono campi uguali il DBMS non da alcun errore. L'importante è che non ci siano riferimenti non univoci che il DBMS non possa capire, come avverrebbe nell'esempio che ti ho fatto qua sopra!

    Posso procedere così però mi sta sulle balle che con ASP non possa fare un JOIN di peso senza alias e poi poter leggere i campi con un semplice TABELLA.CAMPO .... AAAAAAHHHHH!!!! Mi tocca sempre elencare tutto!!! E' strano però! Se qualcuno ha altre idee o soluzioni sono ben accette! Per ora grazie mille barney09

  7. #7
    "SELECT *" è considerata una "bad practice", dovrebbero avertelo detto all'università.

  8. #8
    No anche perchè all'università non ci hanno mai detto dell'*. Mai usato li! Quello lo uso io soprattutto perchè se mi serve tutto mi serve tutto! E invece di elencare il mondo te la cavi con l'asterisco! Ma vedo che a quanto pare mi tocca non fare quella "operazione (pratica) brutta" ed elencare tutto per usare gli alias perchè il recordset di ASP è coglione e non si può richiamere TABELLA.CAMPO!

  9. #9
    Originariamente inviato da Giubano
    perchè il recordset di ASP è coglione e non si può richiamere TABELLA.CAMPO!
    Complimenti per la proprietà di linguaggio: un po' di educazione non guasterebbe, anche se qui quello che manca è la cultura informatica. ASP non c'entra niente con le difficoltà che tu lamenti. Informati prima di sparare giudizi. Per me 3d chiuso.

  10. #10
    Guarda che io scherzo! Purtroppo i toni nello scritto non si possono trasmettere e cerco di farlo con le emoticons! La mia era solo una considerazione! Non penso di aver mancato di rispetto a nessuno e non sono certo qui a insultare ASP anche perchè mi piace un sacco e continuo a programmare con quello! Se usassi mysql (e probabilmente anche PHP) potrei certamente richiamare i campi con Nometabella.campo e mi sembrava strano solo il fatto che ADODB.RECORSET non lo permetta. C'è un altro oggetto che lo permette?

    Questi forum servono per confrontarsi e poter imparare cose nuove. Qui ho imparato che con ADODB.RECORDSET per ora non è possibile fare come con mysql.

    Mi dispiace che si sia interpretata la mia considerazione in un modo che non volevo!
    Sono diretto e l'ho fatto solo per ridere, non sono ne scocciato ne arrabbiato ne sgarbato!

    Comunque questo post mi è stato utilissimo e ha risolto quello che volevo fare!
    ASP non c'entra niente con le difficoltà che tu lamenti. Informati prima di sparare giudizi. Per me 3d chiuso.
    Mi sono informato con questo post e ringrazio tutti!
    Nessuno sa già tutto, tutti dobbiamo imparare e migliorare continuamente. Il mio giudizio non è cambiato, semplicemente, ancora una volta, si è trovata una soluzione ad un problema!
    Grazie ancora e scusami se ti sono sembrato sgarbato!

    3ad chiuso!

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.