Ovo je jedan iz niza članaka o jeziku Access SQL. U ovom se članku opisuje kako napisati uvjet FROM te se koriste primjeri za ilustraciju raznih tehnika koje se mogu koristiti u uvjetu FROM.
U naredbi SELECT navodite izvore podataka u uvjetu FROM. Uvjet FROM može sadržavati i operaciju JOIN. Operaciju JOIN koristite za uparivanje i kombiniranje podataka iz dvaju izvora podataka, kao što su dvije tablice ili tablica i upit.
Ako vas zanima pregled jezika Access SQL, pročitajte članak Access SQL: osnovni koncepti, vokabular i sintaksa.
U ovom članku
Navođenje izvora podataka
U izjavi SELECT uvjet FROM navodi tablice ili upite koji sadrže podatke koje će koristiti uvjet SELECT.
Pretpostavimo da želite znati telefonski broj određenog kupca. Uz pretpostavku da tablica koja sadrži polje u kojem su pohranjeni ti podaci ima naziv tblCustomer, uvjet FROM izgledao bi ovako:
FROM tblCustomer
Naziv možete obuhvatiti uglatim zagradama. Ako naziv ne sadrži razmake ni posebne znakove (kao što su interpunkcijske znakove), uglate zagrade nisu obavezne. Ako naziv sadrži razmake ili posebne znakove, morate koristiti zagrade.
Savjet: Naziv koji sadrži razmake lakše se čita i može vam uštedjeti vrijeme prilikom dizajniranja obrazaca i izvješća, ali s druge strane možete zbog njega više tipkati prilikom pisanja SQL izjava. To biste trebali imati na umu kad imenujete objekte u bazi podataka aplikacije Access.
Korištenje zamjenskih naziva za izvore podataka
Možete se drugim nazivom referencirati na neku tablicu u izjavi SELECT tako da u uvjetu FROM koristite pseudonim tablice. Pseudonim tablice naziv je koji dodjeljujete izvoru podataka u upitu prilikom korištenja izraza kao izvora podataka ili da biste učinili SQL izjavu lakšom za unos i čitanje. To može biti posebno korisno kad je naziv izvora podataka dug ili složen za unos, posebno kad postoji više polja iz različitih tablica s istim nazivom.
Ako, primjerice, želite odabrati podatke iz dvaju polja, oba naziva ID, od kojih jedno dolazi iz tablice tblCustomer, a drugo iz tablice tblOrder, vaš uvjet SELECT izgledat će ovako nekako:
SELECT [tblCustomer].[ID], [tblOrder].[ID]
Korištenjem pseudonima tablica u uvjetu FROM mogli biste olakšati unos upita. Uvjet FROM s pseudonimima tablica izgledat će otprilike ovako:
FROM [tblCustomer] AS [C], [tblOrder] AS [O]
Zatim možete te pseudonime tablica upotrijebiti u uvjetu SELECT, ovako:
SELECT [C].[ID], [O].[ID]
Napomena: Kad koristite pseudonim tablice, možete se u SQL izjavi referirati na tu tablicu tako da upotrijebite pseudonim ili pak pomoću punog naziva tablice.
Pridruživanje povezanih podataka
Kad trebate u rezultatu upita kombinirati parove zapisa iz dvaju izvora podataka u jedan zapis, možete izvesti pridruživanje. Pridruživanje je SQL operacija kojom se navodi u kakvoj su vezi dva izvora podataka i trebaju li podaci iz jednog izvora biti uključeni ako nema odgovarajućih podataka iz drugog izvora.
Da bi se kombinirale informacije iz dvaju izvora podataka, trebate izvesti operaciju pridruživanja na polju koje im je zajedničko. Kad se vrijednosti pohranjene u tom polju podudaraju, u rezultatima se kombiniraju podaci iz zapisa.
Osim kombiniranja podataka, pridruživanje možete koristiti i da navedete treba li uvrstiti zapise iz jedne od tablica ako u povezanoj tablici nema odgovarajućih podataka.
Pretpostavimo, primjerice, da u upitu želite koristiti podatke iz dviju tablica: tblCustomer i tblOrder. Obje tablice imaju polje CustomerID kojim se identificira kupac. Svaki zapis u tablici tblCustomer može imati jedan odgovarajući zapis ili više njih u tablici tblOrder, a povezane vrijednosti mogu biti određene vrijednostima polja CustomerID.
Ako želite pridružiti tablice tako da upit kombinira njihove zapise, osim onih zapisa ih bilo koje tablice za koje ne postoji odgovarajući zapis u drugoj tablici, uvjet FROM izgledat će otprilike ovako (dodani su prijelomi redaka radi bolje čitljivosti):
FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]
U aplikaciji Access pridruživanje se izvodi pomoću uvjeta FROM u izjavi SELECT. Dvije su vrste pridruživanja: unutrašnja i vanjska. U sljedećim su odjeljcima objašnjene te dvije vrste pridruživanja.
Unutrašnja pridruživanja
Unutrašnja su pridruživanja najčešća. Kad se izvrši upit s unutrašnjim pridruživanjem, jedini zapisi koji su obuhvaćeni rezultatima upita oni su kod kojih postoji zajednička vrijednost u objema pridruženim tablicama.
Unutrašnje pridruživanje ima sljedeću sintaksu (dodani su prijelomi redaka radi bolje čitljivosti):
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2
U sljedećoj tablici opisani su različiti dijelovi operacije INNER JOIN.
Dio |
Opis |
tablica1, tablica2 |
Nazivi tablica iz kojih se spajaju zapisi. |
polje1, polje2 |
Nazivi spojenih polja. Ako nisu numerička, polja moraju biti iste vrsta podatka i sadržavati istovrsne podatke, ali ne moraju imati isti naziv. |
operatorusporedbe |
Bilo koji relacijski operator usporedbe: "=," "<," ">," "<=," ">=," ili "<>." |
Vanjska pridruživanja
Vanjska su pridruživanja slična unutrašnjima jer kazuju upitu kako kombinirati informacije iz dvaju izvora. A razlikuju se time što navode i treba li uvrstiti podatke za koje ne postoji zajednička vrijednost. Vanjska su pridruživanja usmjeravajuća: možete navesti treba li uvrstiti sve zapise iz prvog izvora podataka navedenog u pridruživanju (nazvanog i lijevo pridruživanje) ili pak treba uvrstiti sve zapise iz drugog izvora podataka u pridruživanju (poznatog i kao desno pridruživanje).
Vanjsko pridruživanje ima sljedeću sintaksu:
FROM tablica1 [ LEFT | RIGHT ] JOIN tablica2
ON tablica1.polje1compopr tablica2.polje2U sljedećoj se tablici opisuju različiti dijelovi operacija LEFT JOIN i RIGHT JOIN.
Dio |
Opis |
tablica1, tablica2 |
Nazivi tablica iz kojih se spajaju zapisi. |
polje1, polje2 |
Nazivi pridruženih polja. Polja moraju biti iste vrste podataka i sadržavati iste podatke, ali ne moraju imati isti naziv. |
compopr |
Bilo koji relacijski operator usporedbe: "=," "<," ">," "<=," ">=," ili "<>." |
Da biste saznali više o pridruživanjima, pročitajte članak Pridruživanje tablica i upita.