2 messaggi dal 14 ottobre 2010
Ciao a tutti.
Ho un problema che non riesco a risolvere (ottengo sempre msg di errore).

Situazione:
db1 con tab1
db2 con tab2
db3 con tab3
Nella tab1 ho i campi identificatori (ID2 e ID3) di dati che stanno nelle tabelle tab2 e tab3 e devo creare una SELECT che mostri tutti i dati di tutte le tabelle naturalmente sostituendo i numeri di ID contenuti in tab1 con i rispettivi campi descrittivi contenuti in tab2 e tab3.

Ho scritto:
SELECT * FROM [db1].tab1 LEFT JOIN [db2].tab2 ON tab1.ID2=tab2.ID2 LEFT JOIN [db3].tab3 ON tab3.ID3=tab1.ID3

L'errore che viene segnalato è:
Errore di sintassi (operatore mancante) nell'espressione della query 'tab1.ID2=tab2.ID2 LEFT JOIN [db3].tab3 ON tab3.ID3=tab1.ID3'

Non ne vengo a capo (inutile dire che ho fatto diverse prove, ma ahimè senza successo). Aiutatemi !!!

Grazie mille in anticipo.
Ciao, scusami ma non credo di aver capito molto bene la tua situazione.

In pratica quello che tu vuoi fare è relazionare le tabelle, giusto?
se cosi fosse, secondo me, sarebbe meglio unire in un unico Db le tabelle, e da li partire con le tue relazioni.

Un'altra cosa, se non hai strettamente bisogno, evita di chiamare tutti i record nella query di select (Select * From...) ma chiama solo quelli di cui hai veramente bisogno, a favore della banda!

Creazione Siti Vicenza
Posizionamento Siti - SEO
547 messaggi dal 24 maggio 2002
Contributi
Io rpoverei a specificare il nome del database anche per le clausole ON

SELECT * FROM [db1].tab1 LEFT JOIN [db2].tab2 ON [db1].tab1.ID2=[db2].tab2.ID2 LEFT JOIN [db3].tab3 ON [db3].tab3.ID3=[db1].tab1.ID3


Marco.
66 messaggi dal 09 febbraio 2005
credo che dovresti usare la sintassi che segue per identificare le tabelle

select * from <server>.<database>.<owner/schema>.<tabella>

per esempio

select * from server1.db1.dbo.table1

oppure per usare l'owner/schema di default puoi provare così

select * from <server>.<database>..<tabella>

HTH
Modificato da sspintux il 14 ottobre 2010 23.45 -
Modificato da sspintux il 14 ottobre 2010 23.50 -
17 messaggi dal 20 giugno 2006
Ciao tutto corretto, ma io aggiungerei qualche alias alle tabelle per semplificare la query

SELECT * FROM [db1].tab1 a LEFT JOIN [db2].tab2 b ON a.ID2= b.ID2 LEFT JOIN [db3].tab3 c ON a.ID3= c.ID3

in questo modo puoi selezionare i campi in maniera più rapida

SELECT a.campo1, a.campo2, b.campo1,c.campoX .... etc FROM .....
2 messaggi dal 14 ottobre 2010
Grazie a tutti.
Ora faccio delle prove con le modifiche che mi avete suggerito.

Siete stati fulminei !

A presto
678 messaggi dal 12 maggio 2001
www.idioteca.it
i database sono tutti nella stessa istanza di SQL Server, giusto?
altrimenti devi configurare un linked server.

http://msdn.microsoft.com/en-us/library/aa213778%28SQL.80%29.aspx

ciao

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.