Mit tud a WITH AS?
Segítségével az SQL lekérdezésünkből kiemelhetjük a beágyazott lekérdezéseket, és helyettük egy 'alias'-szal, egy névvel hivatkozhatunk rájuk. Pont úgy, mintha tábla vagy view lennének. Ez tapasztalataim szerint meggyorsítja a komplex lekérdezések futtatását, átláthatóbbá teszi a SELECT utasítást.
Hogyan használjuk?
Az így kiemelt beágyazott lekérdezéseket még a fő lekérdezés (ami a beágyazott lekérdezésekből olvas) futtatása előtt definiálnunk kell. Lehetőség van több ilyen "átmeneti tábla" létrehozására is a 'WITH AS' kifejezés után.
Példa:
WITH CTE_Tabla1 AS
(
SELECT Mezo1, Mezo2, Mezo3 FROM tbl_Vers
WHERE Mezo4 in ('Ecc', 'Pecc', 'Kimehetsz')
),
CTE_Tabla2 AS
(SELECT Field1, Field2 FROM tbl_Mondoka
WHERE Field3 = 'Holnapután bejöhetsz'
)
SELECT *
FROM CTE_Tabla1 Inner Join CTE_Tabla2 ON CTE_Tabla1.Mezo1 = CTE_Tabla2.Field1
Inner Join tbl_AltatoMese ON CTE_Tabla2.Field2 = tbl_AltatoMese.ID
Egyéb tudnivalók:
- Az utolsó SELECT-ben fel kell használnunk az összes definiált "átmeneti táblát", különben nem fut le a lekérdezés
- Az utolsó SELECT utasításban az így létrehozott "táblákból" csak az ott megadott mezőneveket használhatjuk.
- Használható a VIEW készítés során is!