Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    [vb6] join in una select

    ciao a tutti ho la segunete query
    codice:
    "select titolo,num_categoria,tipi FROM cronologia INNER JOIN  tipi on cronologia.tipi = tipi.descrizone"

    dove titolo,num_caregoria,tipi sono campi di cronologia
    descrizione è il campo di una tabella chiamato tipi

    il database è access ed ho creato una relazione tra i campi
    tipi delle due tabelle
    quando lancio il programma mi da errore nella query previsto 3

    cosa può essere
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    23
    Da quello che scrivi hai:

    Tabella "cronologia"
    ---------------------------
    titolo,
    num_categoria,
    tipi

    Tabella "tipi"
    ------------------
    descrizione

    Dici che hai creato la relazione fra i campi -tipi- ma la condizione di on la imposti tra tipi e descrizione; oppure non sara' un errore di battitura nell'aver scritto descrizone anziche' descrizione?

  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    la selcet che uso ora è la segunete
    codice:
    query = "select titolo,tipo,num_categoria FROM cronologia INNER JOIN  tipi on cronologia.tipo = tipi.tipo"
    e nella tabella tipi c'è anche il campo tipi
    che è chiave
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    23
    Prova a riscriverla con gli alias:

    codice:
    query = "select C.titolo, C.tipo, C.num_categoria" _
          & " FROM cronologia C INNER JOIN tipi T" _
          & " on (C.tipo = T.tipo)"

  5. #5
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    se metto con gli alisa funziona e questo non dovrebbe esser.perchè con gli alias si e senza no
    ?
    inoltre io al posto dei tipi vorrei visualizzare la descrione ma se metto c.tipo = t.descrizione no va
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    23
    Si', mi rendo conto di averti un po' fuorviato con la storia degli alias, ma era piu' che altro per pulizia del codice.
    La questione e' in realta' questa:
    se tu estrai un campo (nel tuo caso: "tipi") da una tabella ("cronologia") che metti in join con un'altra tabella ("tipi") che contiene pure lei un campo quel nome, si incasina perche' non sa da quale delle due prenderlo (pur essendo uguali) e quindi tu glielo devi specificare.
    Avresti potuto scrivere semplicemente:

    codice:
    query = "select titolo, cronologia.tipo, num_categoria" _
          & " FROM cronologia INNER JOIN tipi " _
          & " on (cronologia.tipo = tipi.tipo)"
    sempre che nella tabella tipi non esistano campi che si chiamano titolo e num_categoria. In pratica non devono esserci ambiguita'.

    Non ho capito bene la seconda domanda, perche' non so che tipi di dati contiene il cmapo descrizione. Puoi spiegarmelo meglio?

  7. #7
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    grazie ho capito la storia delle ambiguità....

    la seconda domanda è semplice.io vorrei facendo una join visualizzare al posto dei tipi la descrizione di tipi

    Allora nella tabella cronologia è presente tipi
    esempio:UST

    nella tabella tipi c'è il campo tipi dove la chiave +è UST
    e un campo descrizione che ha come valore Usati

    Ora facendo la join vorrei visualizzare usati e non UST chiaro?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    23
    Una select di questo tipo potrebbe andare?

    codice:
    query = "select C.titolo, T.descrizione, C.num_categoria" _
          & " FROM cronologia C INNER JOIN tipi T" _
          & " on (C.tipo = T.tipo)"

  9. #9
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    quindi se voglio prelevare un campo da un'altra tabella devo suare inner join ma devo specificare comunque il nome della tabella del campo (t.descrizione) e la join la devo fare tra i campi in cui esiste la relazione?

    ho capito bene o no?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    23
    Se il campo non e' presente in tutte e due le tabelle non e' obbligatorio, ma per pulizia del codice e' molto utile, soprattutto se le select estraggono molti campi e le join sono fra piu' tabelle.

    Per quanto riguarda le join non devono per forza esistere le relazioni per poterle fare, cioe' tu puoi avere anche due tabelle scollegate ma che hanno due campi popolati da procedura in modo da essere collegati logicamente (ad esempio contengono degli ID) e che hanno lo stesso Tipo di dato (testo con testo, numerico con numerico,...).

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.