Access SQL: FROM záradék

Ez a témakör az Access SQL használatával foglalkozó témakörsorozatunk része. A jelen témakör ismerteti, hogy hogyan írhat FROM záradékot, és példákkal szemlélteti a FROM záradékok írásakor használható különféle technikákat.

A SELECT utasításokban a FROM záradék segítségével tud adatforrásokat megadni. A FROM záradék JOIN műveletet is tartalmazhat. A JOIN művelettel egyeztetheti és kombinálhatja két adatforrás adatait, mely lehet például két tábla, illetve egy tábla és egy lekérdezés.

Az Access SQL áttekintését a következő témakörben találhatja meg: Access SQL: alapfogalmak, szókészlet és szintaxis.

Tartalom

Adatforrások megadása

Helyettesítő nevek használata adatforrásokhoz

Kapcsolódó adatok illesztése

Adatforrások megadása

A SELECT utasításban a FROM záradék határozza meg, hogy a SELECT záradékban felhasznált adatok melyik táblákból vagy lekérdezésekből származnak.

Tegyük fel, hogy egy adott ügyfele telefonszámát szeretné megtudni. Ha az adatot tároló mező a tblCustomer nevű táblában szerepel, a FROM záradék a következőképpen alakul:

FROM tblCustomer

A neveket szögletes zárójelekkel határolhatja. Ha a név nem tartalmaz egyetlen szóközt vagy speciális karaktert sem (például írásjeleket), akkor a szögletes zárójel használata nem kötelező. Ha azonban a név tartalmaz szóközt vagy speciális karaktert, muszáj szögletes zárójelek közé zárnia.

Tipp: A szóközt tartalmazó neveket egyszerűbb elolvasni, és időt spórolhat meg velük az űrlapok és jelentések tervezésekor, de előfordulhat, hogy emiatt többet kell majd gépelnie az SQL-utasítások megírásakor. Ne feledkezzen meg erről, amikor elnevezi az adatbázis objektumait.

Helyettesítő nevek használata adatforrásokhoz

A SELECT utasításban másik néven is hivatkozhat egy táblára, ha a FROM záradékban táblaaliast használ. A táblaalias olyan név, amelyet a lekérdezésben szereplő adatforráshoz rendelhet a kifejezések adatforrásként való használatakor. Az alias az SQL-utasítások beírását, illetve olvasását is egyszerűsíti. Különösen akkor hasznos, ha az adatforrás neve hosszú vagy bonyolult, illetve akkor, ha több, különböző táblából származó mezőnek is ugyanaz a neve.

Ha például két mezőből kell összegyűjteni az adatokat, és mindkét mező neve ID, de az egyik a tblCustomer nevű táblából, a másik a tblOrder nevű táblából származik, akkor a SELECT záradék a következőképpen néz ki:

SELECT [tblCustomer].[ID], [tblOrder].[ID]

Ha táblaaliast használ a FROM záradékban, egyszerűbbé válhat a lekérdezés beírása. Táblaaliasokkal a FROM záradék a következőképpen nézhet ki:

FROM [tblCustomer] AS [C], [tblOrder] AS [O]

Ezután a táblaaliasokat a SELECT záradékban is használhatja az alábbiak szerint:

SELECT [C].[ID], [O].[ID]

Megjegyzés: Táblaalias használata esetén az SQL-utasításban az aliasnévvel és a tábla teljes nevével is hivatkozhat az adott táblára.

Kapcsolódó adatok illesztése

Ha két adatforrásból származó rekordpárokat kell egyesítenie egy lekérdezésben, el elvégezheti illesztés végrehajtásával. Az illesztés olyan SQL-művelet, amely leírja, hogy két adatforrás hogyan kapcsolódik össze, és hogy az egyik forrásból származó adatot akkor is visszaadja-e a keresés, ha a másik adatforrásban nincs kapcsolódó adat.

Két adatforrásból származó információk egyesítését úgy végezheti el, ha illesztést hajt végre az adatforrások közös mezőjén. Ha a közös mezőben tárolt értékek megegyeznek, a rekordokból származó adatok egyesítve jelennek meg az eredményben.

Az adatok egyesítésén kívül az illesztés alkalmas arra is, hogy meghatározza, kell-e adatokat belefoglalni bármelyik táblából, ha a kapcsolódó táblában nincs vonatkozó rekord.

Tegyük fel például, hogy egy lekérdezésben két táblából származó adatokat kíván használni, a két tábla neve pedig: tblCustomer és tblOrder. Mindkét táblában van egy mező, a CustomerID mező, amely egy vevőt azonosít. A tblCustomer tábla minden egyes eleme kapcsolódik a tblOrder tábla egy vagy több eleméhez, és a kapcsolódó értékeket a CustomerID mező értékeivel lehet meghatározni.

Ha a táblákat illeszteni szeretné úgy, hogy a lekérdezés egyesítse a táblákból származó rekordokat, kizárva az egyik táblából származó rekordokat, ha a másik táblában nincs kapcsolódó rekord, a FROM záradék a következőképpen néz ki (az áttekinthetőség érdekében sortörést alkalmazva):

FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

Az Accessben az illesztések a SELECT utasítás FROM záradékában történnek. Az illesztéseknek kétféle típusa létezik: belső és külső illesztés. Az alábbi szakaszok ismertetik az illesztések kétféle típusát.

Belső illesztések

A belső illesztés az illesztések legáltalánosabb típusa. Amikor egy belső illesztést tartalmazó lekérdezést futtat, a lekérdezés csak azokat a mezőket veszi figyelembe, ahol mindkét illesztett táblában ugyanaz az érték szerepel a mezőkben.

A belső illesztés szintaxisa az alábbiak szerint alakul (az áttekinthetőség érdekében sortörést alkalmazva):

FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2

Az alábbi táblázat az INNER JOIN művelet részeit ismerteti.

Rész

Leírás

tábla1, tábla2

Annak a két táblának a neve, amelyeknek a rekordjait egyesíti.

mező1, mező2

Az illesztendő mezők neve. Ha a mezők nem numerikusak, akkor az adattípus azonosnak kell lennie, és ugyanolyan jellegű adatokat kell tartalmazniuk. A nevük lehet különböző.

összehasonlító operátor

Bármely relációs összehasonlító operátor: =, <, >, <=, >= vagy <>.

Külső illesztések

A külső illesztések a belső illesztésekhez hasonlóan azt határozzák meg, hogy egy lekérdezés hogyan egyesíti a két forrásból származó információt. A külső illesztések abban különböznek, hogy azt is megadják, hogy a lekérdezés figyelembe vegye-e az adatokat, ha nincsenek azonos értékek. A külső illesztések irányítottak: megadják, hogy a lekérdezés az illesztésben megadott első adatforrás összes rekordját tartalmazza (bal oldali illesztés), vagy az illesztésben megadott második adatforrás összes rekordját (jobb oldali illesztés).

A külső illesztések szintaxisa az alábbi:

FROM tábla1 [ LEFT | RIGHT ] JOIN tábla2
ON tábla1.mező1összehasonlító_operátor tábla2.mező2

Az alábbi táblázat a LEFT JOIN és a RIGHT JOIN művelet részeit ismerteti.

Rész

Leírás

tábla1, tábla2

Annak a két táblának a neve, amelyeknek a rekordjait egyesíti.

mező1, mező2

Az egyesítendő mezők neve. A mezők adattípusának egyeznie kell, a mezőknek ugyanolyan jellegű adatokat kell tartalmazniuk, de a nevük lehet különböző.

összehasonlító operátor

Bármely relációs összehasonlító operátor: "=", "<", ">", "<=", ">=" vagy "<>".

Az illesztésekkel kapcsolatban további tájékoztatás olvasható a Táblák és lekérdezések illesztése című cikkben.

Vissza a lap tetejére

Office-jártasság bővítése
Oktatóanyagok megismerése
Új szolgáltatások listájának lekérése
Részvétel az Office Insider programban

Hasznos volt az információ?

Köszönjük a visszajelzését!

Köszönjük visszajelzését. Jobbnak látjuk, ha az Office egyik támogatási szakemberéhez irányítjuk.

×