Több lekérdezés eredményének együttes megjelenítése egyesítő lekérdezéssel

Több lekérdezés eredményének együttes megjelenítése egyesítő lekérdezéssel

Fontos : Ez a cikk gépi fordítással lett lefordítva, lásd a jognyilatkozatot. A cikk angol változatát itt találhatja meg.

Tegyük fel, hogy az Access-adatbázisba két nem kapcsolódó tábla – egy ügyfél adatait, és egy másik tároló a szállítók adatait tároló –, és a két tábla partneradatok mező rendelkezik. Szeretné, hogy tekintheti meg a két tábla, nézet valamelyikében kapcsolattartási adatait. Ehhez először hozzon létre egy választó lekérdezést, minden táblázatában a kapcsolattartási adatok beolvasásához, és ezeket az eredményeket egyesíthet választó lekérdezések létrehozását illetően.

Megjegyzés : A tartalom a jelen cikkben készült asztali Access-adatbázisokon alkalmazhatók. Nem hozható létre, vagy használja az egyesítő lekérdezés Access webes adatbázisokban vagy Access-webalkalmazásokban.

Ismereteit az Egyszerű választó lekérdezések létrehozásáról? Lásd: Egyszerű választó lekérdezések létrehozását.

Először is, néhány dologgal tisztában kell lennie a választó lekérdezések létrehozását illetően:

  • Az egyesítő lekérdezésben egyesítendő választó lekérdezéseknek ugyanannyi kimeneti mezővel kell rendelkezniük, a mezők sorrendje nem térhet el, és azonos vagy kompatibilis adattípusú mezők szükségesek. Egyesítő lekérdezések futtatásakor a kapcsolódó mezőhalmazok adatai egyetlen kimeneti mezőbe kerülnek, ezért a lekérdezés eredménye mindig ugyanannyi mezőt tartalmaz, mint az egyes SELECT utasításoké.

  • Az egyesítő lekérdezések SQL-specifikus lekérdezések, ezért közvetlenül SQL nyelven kell megírni őket. Az SQL-specifikus lekérdezések, köztük az egyesítő lekérdezések megírásához váltson az SQL nézetre.

1. lépés: A választó lekérdezések létrehozása

Megjegyzés : Bár a választó lekérdezésekbe több táblát vagy lekérdezést is belefoglalhat, ez az eljárás feltételezi, hogy mindegyik választó lekérdezés csak egy táblából kérdez le adatokat.

  1. Kattintson a Létrehozás lap Lekérdezések csoportjának Lekérdezéstervező gombjára.

  2. A Tábla megjelenítése párbeszédpanelen kattintson duplán arra a táblára, amelyből adatokat kíván lekérdezni. Ezzel felveszi a táblát a lekérdezéstervező ablakába.

  3. Zárja be a Tábla megjelenítése párbeszédpanelt.

  4. A lekérdezéstervező ablakban kattintson duplán az egyes felvenni kívánt mezőkre.
    A mezők kiválasztása során ügyeljen arra, hogy ugyanannyi számú mezőt, ugyanolyan sorrendben adjon hozzá a választó lekérdezésekhez. Különösen ügyeljen a mezők adattípusára, és győződjön meg arról, hogy azok kompatibilisek az egyesítéshez használt többi lekérdezéssel. Ha például az első választó lekérdezésben öt mező van, és ezek közül az első dátum/idő típusú adatokat tartalmaz, akkor győződjön meg arról, hogy az egyesítendő többi választó lekérdezésben is ennyi mező van, és az első mező adatai mindegyikben dátum/idő típusúak.

  5. Tetszés szerint feltételeket adhat a mezőkhöz a mezőrács feltétel sorába írja be a megfelelő kifejezés.

  6. Miután végzett a mezők és mezőfeltételek megadásával, futtassa a választó lekérdezést, és tekintse át az eredményt. Kattintson a Tervezés lap eredmények csoportjának Futtatásparancsára.

  7. Váltson át Tervező nézetre.

  8. Mentse és hagyja nyitva a választó lekérdezést.

  9. Ismételje meg a fenti lépést a többi egyesíteni kívánt választó lekérdezésnél.

Egy lekérdezésben feltételek használatával kapcsolatos további tudnivalókért olvassa el a feltétel alkalmazása lekérdezésrecímű témakört.

2. lépés: A választó lekérdezések egyesítése

Ebben a lépésben az egyesítő lekérdezés SQL-utasítások használatával létrehozása. (További tudnivalókért lásd: a SQL-szintaxisa csoportban alatti.)

  1. Kattintson a Létrehozás lap Lekérdezések csoportjának Lekérdezéstervező gombjára.

  2. Zárja be a Tábla megjelenítése párbeszédpanelt.

  3. A Tervezés lap Lekérdezés típusa csoportjában kattintson az Egyesítő gombra.

Az Access elrejti a lekérdezéstervező ablakot, és megjeleníti az SQL nézet objektumlapot. Ekkor az SQL nézet objektumlap üres.

  1. Kattintson az egyesíteni kívánt első választó lekérdezés fülére.

  2. Kattintson a Kezdőlap lap Nézet > SQL nézet.

  3. Másolja a vágólapra a választó lekérdezés SQL-utasítását. Kattintson az első lépésben létrehozott egyesítő lekérdezés fülére.

  4. Illessze be a választó lekérdezés SQL-utasítását az egyesítő lekérdezés SQL nézetének objektumlapjára.

  5. Törölje a választó lekérdezés SQL-utasításának végéről a pontosvesszőt (;).

  6. A kurzor mozgatása egy sorral lefelé, és írja be a UNION az új sorban az Enter billentyű lenyomásával.

  7. Kattintson az egyesíteni kívánt következő választó lekérdezés fülére.

  8. Ismételje meg az eljárás 5–10. lépését, amíg vágólapra nem másolta és be nem illesztette a választó lekérdezések összes SQL-utasítását az egyesítő lekérdezés SQL nézet ablakában. Ne törölje a pontosvesszőt, és ne írjon semmit az utolsó választó lekérdezés SQL-utasításának végére.

  9. A Tervezés lap Eredmények csoportjában kattintson a Futtatás gombra.

Az egyesítő lekérdezés eredményei Adatlap nézet jelennek meg.

Vissza a lap tetejére

Tippek az egyesítő lekérdezések használatához

  • Ha szeretné tudni, hogy az egyes sorok melyik táblából származnak, akkor vegyen fel mezőként egy szöveges karakterláncot mindegyik választó utasításba.

    Ha például az egyik utasítás a Termékek táblából, míg a másik a Szolgáltatások táblából olvassa be a mezőket, akkor vegye fel mezőként a Termék karakterláncot az első utasítás végére, illetve a Szolgáltatás karakterláncot a második utasítás végére. Az AS kulcsszóval egy mezőaliast (például „típus”) is hozzárendelhet a karakterlánchoz, az alábbi példához hasonlóan:

    SELECT field1, field2, ... "Product" AS type

    SELECT field1, field2, ... "Service" AS type

    A lekérdezés eredménye tartalmaz egy „type” nevű mezőt, amely megmutatja, hogy a sor a Termékek vagy a Szolgáltatások táblából származik-e.

  • A UNION kulcsszavak az őket közvetlenül megelőző, illetve az utánuk következő SELECT utasításokat egyesítik. Ha az ALL kulcsszót is használja a lekérdezésben a UNION kulcsszavak egy részéhez (de nem az összeshez), akkor az eredmény ismétlődő sorokat fog tartalmazni a UNION ALL használatával egyesített SELECT utasításpárok esetén, ugyanakkor nem fog ismétlődő sorokat tartalmazni az ALL kulcsszó nélküli UNION kulcsszóval egyesített SELECT utasítások esetén.

  • A mennyiségnek, az adattípusnak és a mezők sorrendjének egyeznie kell a választó lekérdezésekben. A kompatibilitás érdekében kifejezéseket (például számításokat vagy segédlekérdezéseket) is használhat.

    Megfeleltethet például egy két karakterből álló évszámot tartalmazó mezőt egy négy karakterből álló évszámot tartalmazó mezőnek a Right függvénnyel úgy, hogy a négy karakterből álló év utolsó két karakterét használja fel.

Új tábla létrehozása az egyesítő lekérdezés eredményéből

Először használja az egyesítő lekérdezést egy új választó lekérdezés, és írja be a választó lekérdezés bemeneteként táblakészítő lekérdezéssel, ahogy az alábbi lépéseket:

  1. Hozza létre és mentse az egyesítő lekérdezést.

  2. Kattintson a Létrehozás lap Lekérdezések csoportjának Lekérdezéstervező gombjára.

  3. A Tábla megjelenítése párbeszédpanelen kattintson a Lekérdezések fülre.

  4. Kattintson duplán az egyesítő lekérdezésre, majd zárja be a Tábla megjelenítése párbeszédpanelt.

    Megjegyzés : Ha az üzenetsávon biztonsági figyelmeztetést lát, akkor elképzelhető, hogy le vannak tiltva a módosító lekérdezések. A módosító lekérdezések engedélyezéséhez elég, ha az üzenetsáv Tartalom engedélyezése gombjára kattint.

  5. Az egyesítő lekérdezés objektumlapján látható lekérdezéstervező rácson kattintson duplán a csillagra (*): ezzel egy új táblát hoz létre az egyesítő lekérdezés összes mezőjéből.

  6. A Tervezés lap Lekérdezés típusa csoportjában kattintson a Táblakészítő gombra.

  7. Adja meg az új tábla nevét a Táblakészítő párbeszédpanelen.

  8. Ha szükséges, adjon meg egy másik adatbázist, amelyben létre szeretné hozni a táblát.

  9. Kattintson az OK gombra.

  10. A Tervezés lap Eredmények csoportjában kattintson a Futtatás gombra.

Teljes külső illesztés végrehajtása egyesítő lekérdezéssel

Egyesítő lekérdezést használhat teljes külső illesztés végrehajtásához. A teljes külső illesztés nem korlátozza a visszaadott sorok számát egyik illesztett tábla esetén sem, viszont egyesíti a sorokat az illesztési mezőben lévő értékek alapján.

  1. Hozzon létre egy olyan lekérdezést, amely bal oldali külső illesztést alkalmaz a teljes külső illesztéshez használandó mezőnél.

  2. A Kezdőlap lap Nézetek csoportjában kattintson a Nézet menügombra, majd az SQL nézet parancsra.

  3. Nyomja le a Ctrl+C billentyűkombinációt az SQL-kód vágólapra másolásához.

  4. Törölje a pontosvesszőt a FROM záradék végéről, majd nyomja le az Enter billentyűt.

  5. Írja be a UNION, és nyomja le az ENTER billentyűt.

    Megjegyzés : Ne adja meg az ALL kulcsszót, ha egyesítő lekérdezést használ a teljes külső illesztéshez.

  6. Nyomja le a Ctrl+V billentyűkombinációt a 3. lépésben vágólapra másolt SQL-kód beillesztéséhez.

  7. A beillesztett kódban módosítsa a LEFT JOIN kifejezést RIGHT JOIN kifejezésre.

  8. Törölje a pontosvesszőt a második FROM záradék végéről, majd nyomja le az Enter billentyűt.

  9. Adjon hozzá egy WHERE záradékot, amely meghatározza, hogy a FROM záradékban szereplő első táblában (a bal oldali táblában) az illesztőmező értéke NULL.

    Tegyük fel például, hogy a FROM záradék a következő:

    FROM Products RIGHT JOIN [Order Details] 
    ON Products.ID = [Order Details].[Product ID]

    Ebben az esetben az alábbi WHERE záradékot kell megadnia:

    WHERE Products.ID IS NULL

  10. Tegyen pontosvesszőt (;) a WHERE záradék végére az egyesítő lekérdezés végének jelzéséhez.

  11. Kattintson a Tervezés lap Eredmények csoportjában a Futtatás gombra.
    Az egyesítő lekérdezés eredménye megjelenik Adatlap nézet.

További tudnivalókért olvassa el a táblák és lekérdezések illesztésecímű témakört.

Vissza a lap tetejére

Az egyesítő lekérdezések követelményei és SQL-szintaxisa

Az egyesítő lekérdezések néhány követelménye

  • Az egyesítő lekérdezésben egyesítendő választó lekérdezéseknek ugyanannyi kimeneti mezővel kell rendelkezniük, a mezők sorrendje nem térhet el, és azonos vagy kompatibilis adattípusú mezők szükségesek. Egyesítő lekérdezések futtatásakor a kapcsolódó mezőhalmazok adatai egyetlen kimeneti mezőbe kerülnek, ezért a lekérdezés eredménye mindig ugyanannyi mezőt tartalmaz, mint az egyes SELECT utasításoké.

    Megjegyzés : Egyesítő lekérdezések esetében a Szám és a Szöveg adattípus kompatibilis egymással.

  • Az egyesítő lekérdezések SQL-specifikus lekérdezések, ezért közvetlenül SQL nyelven kell megírni őket. Az SQL-specifikus lekérdezések, köztük az egyesítő lekérdezések megírásához váltson az SQL nézetre.

Az egyesítő lekérdezések SQL-szintaxisa

Az egyesítő lekérdezés mindegyik választó lekérdezésében (más néven SELECT utasításában) a következő záradékok szerepelnek:

Záradék

A következők listáját tartalmazza

SELECT

A lekérdezendő adatokat tartalmazó mezők

FROM

Az adott mezőket tartalmazó táblák

WHERE (nem kötelező)

A mezőkre vonatkozó feltételek

A SELECT utasításokat az UNION kulcsszó egyesíti.

Egy egyesítő lekérdezés alapvető SQL-szintaxisa a következő:

SELECT field_1[, field_2,…]
FROM table_1[, table_2,…]
UNION [ALL]
SELECT field_a[, field_b,...]
FROM table_a[, table_b,…];

Tegyük fel, hogy van egy Termékek és egy Szolgáltatások nevű táblája, és mindkét tábla mezői a termék vagy szolgáltatás nevét, árát, jótállását, garanciális lehetőségeit, illetve a termék vagy szolgáltatás kizárólagos értékesítési állapotát tartalmazzák. Bár a Termékek tábla jótállási adatokat, míg a Szolgáltatások tábla garanciális adatokat tartalmaz, a lényeg ugyanaz (hogy rendelkezik-e az adott termék vagy szolgáltatás minőségi szavatossággal). A két tábla négy mezőjét az alábbihoz hasonló egyesítő lekérdezéssel vonhatja össze:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services;

Érdemes soronként megvizsgálni az előző példában található szintaxist:

Szintaxis

Magyarázat

További információk

SELECT név, ár, jótállási_lehetőség, kizárólagos_ajánlat:

Az első SELECT záradék.

A SELECT záradékot követő azonosítók a beolvasandó adatokat tartalmazó mezőket jelölik.

A SELECT záradékban legalább egy mezőnek szerepelnie kell.

Ez a SELECT záradék a név, ár, jótállási_lehetőség és kizárólagos_ajánlat mezőazonosítókat sorolja fel.

FROM Termékek:

Az első FROM záradék.

A SELECT záradék után következik, azzal együtt egy egyszerű SELECT utasítást alkot.

A FROM záradékot követő azonosítók meghatározzák, hogy mely táblák tartalmazzák a SELECT záradékban lévő mezőket.

A FROM záradékban legalább egy táblának szerepelnie kell.

A fenti záradék a Termékek táblaazonosítót használja.

UNION ALL:

Az UNION kulcsszó és az ALL kulcsszó, amely nem kötelező.

A program az UNION kulcsszót megelőző SELECT utasítás eredményeit egyesíti az UNION utáni SELECT utasítás eredményeivel.

Az ALL kulcsszó használata esetén a program nem távolítja el az ismétlődő sorokat az egyesítő lekérdezés eredményéből.

Az ALL kulcsszó megadásával gyorsabban futtatható a lekérdezés, mivel az Access alkalmazásnak nem kell ellenőriznie az ismétlődő sorokat.

Ha az alábbi feltételek bármelyike teljesül, akkor használja az ALL kulcsszót:

  • Biztos benne, hogy a választó lekérdezések nem hoznak létre ismétlődő sorokat.

  • Nem számít, hogy az eredmények ismétlődő sorokat tartalmaznak.

  • Szeretné látni az ismétlődő sorokat.

SELECT név, ár, garanciális_lehetőség, kizárólagos_ajánlat:

A második SELECT záradék.

Néhány szabály:

  • A második SELECT záradékban ugyanannyi mezőnek kell szerepelnie, mint az első SELECT záradékban.

  • A hasonló adatokat tartalmazó mezőknek ugyanolyan sorrendben kell lenniük a záradékban.

  • A hasonló adatokat tartalmazó mezők adattípusainak meg kell egyezniük, vagy egymással kompatibilisnek kell lenniük.

Megjegyzés : Az egyesítő lekérdezés eredményének mezőneveit az első SELECT záradékból olvassa be a program. Az előbbi példában tehát a jótállási_lehetőség és a garanciális_lehetőség mezők jótállási_lehetőség néven szerepelnek a lekérdezés eredményében.

FROM Szolgáltatások:

A második FROM záradék.

Az egyesítő lekérdezés FROM záradékaiban szereplő táblákra nem vonatkozik korlátozás. Olyan egyesítő lekérdezést is létrehozhat, amelynek mindegyik FROM záradékában ugyanazok a táblák szerepelnek. Az egyes FROM záradékokban akár eltérő számú tábla is megadható. A fenti példában a FROM záradékok mindössze egyetlen táblát tartalmaznak.

Vissza a lap tetejére

Megjegyzés : Gépi fordítás jognyilatkozata: Ez a cikk számítógép által, emberi közreműködés nélkül lett lefordítva. A Microsoft ezeket a gépi fordításokat azért nyújtja, hogy az angol nyelvet nem beszélők minél több tartalomhoz tudjanak hozzáférni a Microsoft termékeivel, szolgáltatásaival és technológiáival kapcsolatban. A gépi fordítás miatt előfordulhat, hogy a szöveg szóhasználati, szintaktikai vagy helyesírási hibákat tartalmaz.

Ismeretek 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.

×