per esempio se si sta cercando di ottenere il nome di un paese utilizzando country_id in questa tabella Progetto mostrato nella sua interrogazione, Si potrebbe fare qualcosa di simile
SELECT C.CountryName_Colummn, C.SomeOtheColumn, ......
FROM Projects P INNER JOIN Countries C
ON P.id_Country = C.id_Country
WHERE SomeColum = 'Your Condition'
1) clausola SELECT si selezionano le colonne avete bisogno in il tuo set di risultati.
2) DAL MIO/I NOME/I Nome/i
3) Clausola ON definisce la relazione tra le tabelle La tabella Say Projects ha una colonna id_Country che fa riferimento a id_Country nella tabella Paesi definisce la relazione tra queste due tabelle.
4) Dopo aver selezionato l'elenco di colonne, Origine dei dati (tabelle), Loro relazioni (Su clausola), è possibile filtrare il numero di righe di ritorno dalla query, come si può qualcosa come id_Country
WHERE C.CountryName = 'UK' restituirà risultati solo dal Regno Unito.
5) In from Clause le lettere "C" e "P" sono alias quindi non è necessario digitare nuovamente i nomi completi della tabella n, rendendo il nostro codice più semplice e più facile da leggere e correggere.
Indipendentemente dal numero di tabelle che è necessario unire per ottenere i dati richiesti, purché sia possibile definire la relazione tra loro nella query, dovrebbe funzionare correttamente. SQL Server raramente si troveranno tutti i dati richiesti in una tabella, normalmente si uniranno 2-3 tabelle o più tabelle. Per esempio volete un po 'di dati che è presente in 3 diverse tabelle si sarebbe unito a loro tutti e tre in una query qualcosa di simile ...
SELECT C.CountryName_Colummn, C.SomeOtheColumn, ......
FROM Projects P INNER JOIN Countries C
ON P.id_Country = C.id_Country
INNER JOIN Table_3_Name T3
ON T3.CommonColumn = P.SomeCommonColumn (it will be a common column between table 3 and Projects OR Countries)
WHERE SomeColum = 'Your Condition'
Ma si ha realmente bisogno di guardare in join come si può fare diversi tipi di join tra tabelle, Hers in questo esempio ho usato INNER JOIN che restituisce solo le righe corrispondenti tra tutte queste tabelle, potresti fare LEFT JOIN o RIGHT JOIN.
LEFT JOIN restituisce tutte le righe dalla tabella sul lato SINISTRA della parola chiave JOIN e solo le righe corrispondenti da altre tabelle.
RIGHT JOIN restituisce tutte le righe dal lato destro della parola chiave JOIN e solo le righe di manting da altre tabelle.
query con colonne solo desiderati
Select customers.customer_name, Products.Product_type, Manufacturers.Manuf_name
from Projects inner join customers
on customers.cust_id= Projects.proj_cust_id
inner join Products
on Products.prod_id= Projects.proj_prod_id
inner join Manufacturers
on Manufacturers.man_id= Projects.proj_man_id
Facendo uso di Alias vi darà esattamente lo stesso reuslt ma facile da leggere il codice provare anche questo ....
Select C.customer_name, Prod.Product_type, M.Manuf_name
from Projects Proj inner join customers C
on C.cust_id= Proj.proj_cust_id
inner join Products Prod
on Prod.prod_id= Proj.proj_prod_id
inner join Manufacturers M
on M.man_id= Proj.proj_man_id
Se si dispone di non ancora fatto, leggi su ['JOIN's] (http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html). Nel tuo caso specifico dovrai "INTERESSARE UNIRE" la tua tabella "principale" a tutte le tabelle di ricerca richieste. –
@ PM77-1 Grazie per il riferimento. Saltando sulla lettura ora. – FeliceM
Se si desidera acquisire familiarità con i JOIN di base, suggerisco di seguire gli esercizi [SQLZoo] (http://sqlzoo.net/wiki/The_JOIN_operation). E se hai ancora problemi in seguito, sentiti libero di tornare mostrando ciò che hai provato e in che modo non ha raggiunto i tuoi obiettivi. –