Query su 3 Tabelle

lunedì 17 settembre 2007 - 19.25

mikon Profilo | Newbie

Salve,

ho 3 Tabelle:
Tab1(ID_tab1,....vari campi....)
Tab2(ID_tab2,....vari campi....)
Tab3(riferimento_A_Tab1,riferimento_A_Tab2,.....vari campi...)

Dovrei fare una query su Tab3 e al posto dei riferimenti alle tabelle Tab1 e Tab2 far
comparire dei dati presenti in queste tabelle.

Ho provato cosi ma non funziona. Mi dice "Errore in corrispondenza di ON"

Dim connessione As New SqlConnection(".....")
connessione.Open()
Dim stringaquery As String

stringaquery = "SELECT * FROM Tab2 RIGHT JOIN (SELECT * FROM Tab3 LEFT JOIN Tab1 ON riferimentoAtab1=ID_Tab1) ON ID_Tab2=riferimentoAtab2"

Dim comando As SqlCommand = New SqlCommand(stringaquery, connessione)
Dim da As New SqlDataAdapter
Dim ds As New DataSet
da.SelectCommand = comando
da.Fill(ds, "miatab")
DataGridView1.DataSource = ds
DataGridView1.DataMember = "miatab"
connessione.Close()

Qualcuno puo' aiutarmi ?

Brainkiller Profilo | Guru

>Dovrei fare una query su Tab3 e al posto dei riferimenti alle
>tabelle Tab1 e Tab2 far
>comparire dei dati presenti in queste tabelle.

Non so se usi SQL 2000 o 2005 in ogni caso se tu crei una nuova Vista (View) dall'Enterprise Manager o dal Management Studio puoi correlare le colonne delle tabelle ed avere un maxi tabellone contenente tutti i dati di cui hai bisogno. Poi, puoi tenere la Vista e usare direttamente quella oppure vedere il codice SQL generato ed usarlo nel tuo programma.
Questo metodo è utile perchè in modo visuale puoi associare le tabelle anche avendo poca conoscenza di SQL e dei JOIN.

Io consiglio naturalmente di usare la View.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5