# SQL/AI lekérdezés

> Az SQL/AI lekérdezés beállításai: tábla, Join, Where, csoportosítás, számított oszlopok, rendezés, haladó és AI mód, számláló lekérdezés és az eredmény típusa.

Az SQL-táblákban tárolt adatok alapesetben csak adatbázis-kezelővel (például phpMyAdmin) érhetők el, a weboldalon nem. Az **SQL/AI lekérdezés** közvetlenül az adatbázis tábláiból kér le adatokat. Ezekből Listing sablon készíthető, és a Listing Grid megjeleníti őket.

A lekérdezést a **JetEngine → Lekérdezéskészítő** oldalon hozod létre, a **Lekérdezés típusa** listában az **SQL/AI lekérdezés** típussal. Az **Általános beállítások** blokk (név, leírás, egyéni lekérdezés-ID, gyorsítótár, REST API-végpont) minden típusnál ugyanaz, lásd a [Lekérdezéskészítő áttekintését](https://hub.hellowp.io/hu/plugins/jet-engine/query-builder-attekintes/).

![Az SQL/AI lekérdezés alapbeállításai](./kepek/query-builder-sql-alap.webp)

*Az SQL/AI lekérdezés alapbeállításai* (https://minta-bolt.hu/wp-admin/admin.php?page=jet-engine-query&query_action=add)

A kép alsó blokkja az **Egyedi SQL-lekérdezés**, a **Haladó/AI mód** kapcsolóval a tetején.

A **Haladó/AI mód** kikapcsolt állapotában beállításokkal állítod össze a lekérdezést. Bekapcsolva a beállítások alaphelyzetbe állnak, és az SQL-t kézzel írod, vagy AI-val generálod.

## Beállítások a Haladó/AI mód nélkül

| Beállítás | Mit csinál |
|---|---|
| **Táblából** | Az SQL-tábla, amelyből az adatok származnak. |
| **Megjelenítés/oldalankénti korlát** | Hány elem látszik egyszerre. JetSmartFilters lapozással ez az oldalankénti elemszám. |
| **Teljes lekérdezési korlát** | A lekérdezésben szereplő elemek legnagyobb száma. Ezt mutatja a Query Results Count dinamikus címke. Lapozásnál ez az elemek összesített maximuma. |
| **Eltolás** | Az elejéről kihagyott elemek száma. Csak a teljes lekérdezési korláttal együtt működik; korlátlan eredményhez eltolással adj meg nagyon nagy számot a teljes lekérdezési korlátnál. |
| **Oszlopok bevonása** | Mely oszlopok kerüljenek az eredménybe. Üresen hagyva az összes. |
| **Set Column Aliases** | Álneveket adhatsz egyes oszlopoknak. Ne használj létező oszlopnevet, mert az felülírja az eredeti értéket. |
| **Oszlopok szűrőkhöz** | A JetSmartFilters szűréséhez elérhető oszlopok listája. Az oszlop szerinti szűréshez másold ki az oszlop nevét, és illeszd be a kiválasztott szűrő **Query Variable** mezőjébe. |
| **Eredmény típuskényszerítése objektumpéldányra** | Az eredmény típusa (lásd lent). |

### Join használata

A **Join használata** kapcsoló bekapcsolja az SQL-összekapcsolásokat. Az ismétlő elemben megadható:

- **Join típusa**: Inner Join (alapértelmezett, ha nem választasz), Left Join, Right Join vagy Outer Join.
- **Join tábla**: az a tábla, amelyből további adatokat fűzöl hozzá.
- **Amikor az aktuális tábla oszlopa**: az alap tábla oszlopa, amely alapján párosítasz.
- **Egyenlő a másik tábla oszlopával**: a hozzáfűzött tábla megfelelő oszlopa. Ennek az értékeinek meg kell egyezniük a fenti oszlop értékeivel.

### Where (lekérdezési záradékok)

A **Where (lekérdezési záradékok)** blokkban az **Új hozzáadása** gombbal adsz hozzá feltételt: az **Oszlop** listában kiválasztod az adatbázis-oszlopot, megadod az összehasonlítást, az értéket és a típust. Az összehasonlító műveletek, az adattípusok és az üres dinamikus érték kihagyása a többi típussal azonos: lásd az [összehasonlító műveletekről és adattípusokról szóló fejezetet](https://hub.hellowp.io/hu/plugins/jet-engine/query-builder-operatorok-es-tipusok/). Az **Érték** melletti adatbázis-ikon a makrók listáját nyitja. Az **Új csoport hozzáadása** gombbal ÉS/VAGY csoportot is felveszel, ennek menetéről a [csoportos feltételek fejezete](https://hub.hellowp.io/hu/plugins/jet-engine/query-builder-csoportos-feltetelek/) szól. Az SQL Where feltételben az „Exist/Not exist” műveletek az adott oszlop meglétét vizsgálják.

### Eredmények csoportosítása és számított oszlopok

Az **Eredmények csoportosítása** kapcsoló az ismétlődő értékű sorokat összevonja egy oszlop szerint: bekapcsolva megjelenik a **Group By** lista, itt választod ki a csoportosító oszlopot. A **Számított oszlopok bevonása** kapcsoló számított oszlopokat ad hozzá. A beállítás részletes leírása: [Számított oszlopok és csoportosítás az SQL-lekérdezésben](https://hub.hellowp.io/hu/plugins/jet-engine/query-builder-sql-szamolt-oszlopok/).

### Sorrend és Rendezés alapja

Az **Új rendezési paraméter hozzáadása** gombbal egy vagy több rendezési feltételt adsz meg. Mindegyiknél választasz **Rendezés alapja** oszlopot, **Rendelés** irányt (növekvő vagy csökkenő) és **Típus**t (ugyanazok a típusok, mint a Where-nél).

## Haladó/AI mód

Bekapcsolva ezek a mezők állnak rendelkezésre:

- **SQL-lekérdezés**: szövegmező, amelybe az SQL-t kézzel írod. A JetEngine makrói itt is használhatók. Az SQL-ben az adatbázis táblaelőtagját is meg kell adni (a `wp-config.php` fájlban van). Egyszerűbb a `{prefix}` helyőrző a táblanév előtt, amit a rendszer a valódi előtagra cserél, például: `SELECT * FROM {prefix}posts`.
- **AI-generálás**: a varázspálca ikonra kattintva felugró ablak nyílik, ahol a kérésedet szövegben leírod. Az ablakban tippeket és kattintható példákat találsz; a példára kattintva a generált lekérdezés bekerül az **SQL-lekérdezés** mezőbe. Az AI-kérések száma havonta korlátozott (az élettartamú csomagnál havonta 60, más csomagnál havonta 5 kérés).
- **Count SQL Query**: opcionális, a találatok teljes számát kiszámító lekérdezés. Összetett lekérdezéseknél a helyes JetSmartFilters-lapozáshoz szükséges. Ha nem adod meg, a teljes szám a fő lekérdezés eredményéből adódik.

Az AI-val generált lekérdezések példáit lásd az [SQL-lekérdezés generálása AI-val](https://hub.hellowp.io/hu/plugins/jet-engine/query-builder-sql-ai-lekerdezes/) fejezetben.

### Átváltás egyszerűről haladóra

Ha az egyszerű módban már megadtál beállításokat (például Where feltételt), majd bekapcsolod a **Haladó/AI mód**ot, a beállításokból generált SQL bekerül az **SQL-lekérdezés** mezőbe, ha az üres. Ha a mezőben már van szöveg, az változatlan marad.

## Eredmény típuskényszerítése objektumpéldányra

Ez a lista mindkét módban elérhető, és az eredmény kezelését szabja meg:

| Opció | Mit csinál |
|---|---|
| stdClass meghagyása | Az eredmény egyszerű PHP-objektum (stdClass), átalakítás nélkül. |
| stdClass meghagyása, tulajdonságok deszerializálása | Az eredmény stdClass, de a szerializált tulajdonságokat automatikusan tömbbé vagy objektummá alakítja. |
| Post | Minden találat WP_Post objektum lesz. |
| User | WP_User objektumok. |
| Taxonomy Term | WP_Term objektumok. |
| Comment | WP_Comment objektumok. |
| Booking | Foglalási objektumok (ha a JetBooking telepítve és aktív). Foglalási sablonokhoz és szűrőkhöz hasznos. |
| WC Product | WooCommerce-termékobjektumok (WooCommerce szükséges), ár, cikkszám stb. megjelenítéséhez. |

## Biztonsági megjegyzés

A haladó SQL-makrók alapesetben védettek. Csak akkor kapcsold ki ezt a védelmet, ha tényleg nyers makrókimenetre van szükséged, és te ellenőrzöd, milyen értékeket adhatnak a makrók. Kérés vagy felhasználó által megadott, nem megbízható makróértékkel ne használd. A felület a régi viselkedés visszaállításához mutat egy PHP-részletet (a `jet-engine/macros/macros-result` szűrő), ezt a beállítóoldalon, a lekérdezés alján találod.

A lekérdezés mellé Listing sablon készítéséhez lásd a [Listázás](https://hub.hellowp.io/hu/plugins/jet-engine/listazas-lekerdezes-sablon/) fejezetet.
