Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: [vbnet] doppia join

  1. #1

    [vbnet] doppia join

    Per fare una join tra 2 tabelle so che la sintassi é questa:
    "SELECT * FROM tabella1 left join tabella2 on tabella2.campox = tabella1.campoy"
    Ma se voglio fare in modo che, contemporaneamente, la tabella1, tramite il campow, faccia una join anche con una tabella3 con campoz quale é la sintassi giusta? Grazie

  2. #2
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    le join non sono per forza di tipo LEFT, ci sono anche RIGHT, OUTER, CROSS. Dipende da cosa vuoi tirare fuori dalla join

    E' possibile fare + join tra + tabelle, nel tuo caso...
    codice:
    SELECT * 
    FROM tabella1 
    left join tabella2 on tabella2.campox = tabella1.campoy
    left join tabella3 on tabella3.campoz = tabella1.campow

    Cerca informazioni sulle join

    http://www.microsoft.com/sql/techinfo/default.asp


  3. #3
    Certo, é chiaro che posso usare diversi tipi di join, ma adesso a me interessava usare la sintassi giusta. Il fatto é che quella che mi hai dato tu l'avevo già provata ma mi va in errore, tra una join e l'altra c'é uno spazio? una virgola? Il fatto é che ho provato sia spazio che virgola.

  4. #4
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    Originariamente inviato da stellinaxxx
    Certo, é chiaro che posso usare diversi tipi di join, ma adesso a me interessava usare la sintassi giusta. Il fatto é che quella che mi hai dato tu l'avevo già provata ma mi va in errore, tra una join e l'altra c'é uno spazio? una virgola? Il fatto é che ho provato sia spazio che virgola.
    c'è soltanto uno spazio.

    che errore ti da?

    la sintassi è corretta, prova a levare la left e usa solo join

  5. #5
    Non funziona lo stesso, l'errore lo da al momento dell'executereader dell'oggetto oledbcommand, l'errore é: "Eccezione non gestita di tipo 'System.Data.OleDb.OleDbException' in system.data.dll". Ti posso dire che non ci sono altri tipi di errore perché se provo a fare una join semplice mi funziona.

  6. #6
    Se usi Access, i join li fa nidificati:
    codice:
    SELECT tabella1.* FROM tabella2 LEFT JOIN (tabella3 LEFT JOIN tabella1 ON tabella3.campoz = tabella1.campow) ON tabella2.campox = tabella1.campoy
    Non so dirti se questo è uno standard, guardati gli help su SQL. Ti consiglio, se usi Access come database, di usarlo per sviluppare e provare le tue query. Poi passi nella modalità "Visualizzazione SQL" e copi la stringa sql così ottenuta...
    Chi non cerca trova.

  7. #7
    Niente, non mi funziona neanche così, comunque adesso seguo il tuo consiglio di provare la query direttamente su Access, in caso di successo ti faccio sapere, va bene?

  8. #8
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    non è che per caso qualche campo di verifica della join è null? :master:

  9. #9
    No, nessuno dei campi usati nella query ha la possibilità di essere null. Comunque sto cercando di fare la query direttamente in access, non riesco a capire, dopo aver fatto manualmente la query, dove vado a vedere il codice che é stato generato.

  10. #10
    Sei in modalità struttura della query, vai nel menu Visualizza/Visualizzazione SQL. Questo in Access 2003, ma la minestra è la stessa anche con le versioni precedenti.
    Chi non cerca trova.

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.