# Több kapcsolat elemei egy listában

> Két kapcsolat gyermekelemeinek megjelenítése egyetlen Listing Griddel makrókkal és egy UNION-t használó SQL-lekérdezéssel.

Ha egy szülő több kapcsolatából származó elemeket egyetlen listában akarsz mutatni, makrókból SQL-lekérdezést, abból pedig bejegyzés-lekérdezést építesz. Szükséges: Elementor (ingyenes), blokkszerkesztő vagy Bricks, és aktív JetEngine legalább két kapcsolattal.

A példában az **Osztályok → Orvosok** és az **Osztályok → Szolgáltatások** kapcsolat van, és az aktuális osztály orvosait és szolgáltatásait egy listában mutatjuk.

## A makrók előállítása

1. Menj a **JetEngine → JetEngine → Makrógenerátor** oldalra (lásd: [Shortcode- és makrógenerátor](https://hub.hellowp.io/hu/plugins/jet-engine/generatorok/)).
2. A **Macros** listából válaszd a **Related Items** értéket.
3. A **From Relation** legyen az **Osztályok → Orvosok** kapcsolat, a **From Object (what to show)** legyen **Child Object**, az **Initial Object ID From** pedig **Aktuális objektum ID-ja**. A többi mező maradhat üresen.
4. Az oldal alján megjelenik a makró. Másold ki és mentsd el.
5. Válaszd ki a második kapcsolatot (**Osztályok → Szolgáltatások**), és mentsd el a második makrót is.

## SQL-lekérdezés

1. A **JetEngine → Lekérdezéskészítő** oldalon kattints az **Új hozzáadása** gombra.
2. Add meg a nevet, a típus legyen **SQL/AI lekérdezés**.
3. Az egyéni SQL-lekérdezés részben kapcsold be a **Advanced/AI mode** kapcsolót.
4. Az SQL-lekérdezés mezőbe írd be a következőt, és a példában szereplő `%rel_get_items|23|…%` és `%rel_get_items|11|…%` makrók helyére illeszd be a saját makróidat:

```sql
SELECT ID
FROM {prefix}posts
WHERE ID IN (
  SELECT ID FROM {prefix}posts WHERE ID IN (
    %rel_get_items|23|child_object|current_object|%{"fallback":"0"}
  )
  UNION
  SELECT ID FROM {prefix}posts WHERE ID IN (
    %rel_get_items|11|child_object|current_object|%{"fallback":"0"}
  )
)
```

5. Kattints az **Add Query** (módosításnál **Update Query**) gombra.

## Bejegyzés-lekérdezés

1. Hozz létre új lekérdezést, a típus legyen **Bejegyzések lekérdezése**.
2. A **Bejegyzés és oldal** lapon kattints a **Post In** mező melletti **Dynamic Tag** ikonra, és válaszd a **Query Results** értéket.
3. Az ablakban a **Query** mezőben válaszd az SQL-lekérdezést, a **Return** mezőben a **List of items IDs** értéket, és kattints az **Alkalmaz**, majd a mentés gombra.

## Listázási elem és oldal

1. Hozz létre listázási elemet a **Lekérdezéskészítő** forrással, a bejegyzés-lekérdezést választva forrásnak, és tedd közzé.
2. Az **Osztályok** önálló sablonjában tegyél fel egy **Listing Grid** elemet a listázási elemmel.
3. Az **Egyéni lekérdezés** lapon ne válassz egyetlen lekérdezést sem. A lekérdezés már a listázási elem forrása, és ha még egyszer megadod, a lista üres lesz.
4. Tedd közzé a sablont.

Az eredmény: egy osztály oldalán az osztály összes orvosa és szolgáltatása egy listában jelenik meg.
