---
title: "Seiten anhand von System-Kategorien auslesen (SQL)"
url: "https://www.typo3.net/d/121778-seiten-anhand-von-system-kategorien-auslesen-sql"
source: "typo3.net"
tags: ["TYPO3","TypoScript","Datenbank","Frage","Kategorien"]
created: "2016-01-27"
last_reply: "2016-01-29"
replies: 1
solved: false
page: 1
pages: 1
lang: "de"
---

# Seiten anhand von System-Kategorien auslesen (SQL)

TYPO3 › TypoScript · 1 Antwort · gestartet 2016-01-27

## Eröffnungsbeitrag

**identiq** · 2016-01-27 · [Beitrag #1](https://www.typo3.net/d/121778-seiten-anhand-von-system-kategorien-auslesen-sql/1)

Hey Leute,

ich brauche mal eure Hilfe. Irgendwie sehe ich gerade den Wald vor lauter Bäumen nicht mehr.
Folgendes Szenario:

Ich habe eine ganz normale TYPO3 7 Instanz, mit sagen wir, 2 Seiten (Über uns & Leistungen).
Des Weiteren habe ich 3 System-Kategorien. In diesem Beispiel "Kategorie1, Kategorie2, Kategorie3".

Die Seite "Über Uns" hat die Kategorien "Kategorie1 und Kategorie2" zugeteilt bekommen.
Die Seite "Leistungen" hat die Kategorien "Kategorie2 und Kategorie3" zugeteilt bekommen.

Nun brauche ich einen SELECT im TypoScript, der mir alle Seiten ausliest, welche sowohl die **Kategorie 2**, als auch die **Kategorie3** zugeordnet bekommen hat. (In diesem Fall müsste die Seite "Leistungen" die gewünschte Ausgabe sein.)

Bevor wir das in TypoScript machen, denke ich mir, ist es in einfachen SQL besser..

Folgende 3 Tabellen existieren ja hierfür in TYPO3:

"pages", "sys_category", "sys_category_record_mm"

```html
pages - table:
+-----+----------+------------+
| uid |  title   | categories |
+-----+----------+------------+
|   3 | About us |          2 |
|   4 | Services |          2 |
+-----+----------+------------+
```

```html
sys_category - table:
+-----+-------+
| uid | title |
+-----+-------+
|   1 | Kategorie1 |
|   2 | Kategorie2 |
|   3 | Kategorie3 |
+-----+-------+
```

```html
sys_category_record_mm - table:
+-----------+-------------+------------+
| uid_local | uid_foreign | tablenames |
+-----------+-------------+------------+
|         2 |           4 | pages      |
|         2 |           3 | pages      |
|         1 |           4 | pages      |
|         3 |           3 | pages      |
+-----------+-------------+------------+
```

Nun habe ich hier eine einfache SQL - Abfrage, welche mit alle Seiten ausgibt, die eine Kategorie haben.

```php
SELECT DISTINCT title FROM pages
JOIN sys_category_record_mm ON sys_category_record_mm.uid_foreign = pages.uid
WHERE sys_category_record_mm.tablenames = 'pages'
```

Diese SQL - Abfrage liefert mir nun bei den 3 Tabellen folgende Ausgabe:

```html
+----------+
|  title   |
+----------+
| Leistungen|
| Über Uns |
+----------+
```

Allerdings brauche ich nur die Seite "Leistungen". Halt die Seite, welche sowohl Kategorie2, als auch Kategorie3 zugeordnet ist.

Ich habe an etwas ähnlichem wie folgt gedacht, allerdings weiß ich auch, dass das nicht funktionieren kann, da ich weiterhin beide Einträge bekomme, da ich hier eine OR-Condition habe...

```php
SELECT DISTINCT title FROM pages
JOIN sys_category_record_mm ON sys_category_record_mm.uid_foreign = pages.uid
WHERE sys_category_record_mm.tablenames = 'pages' AND (sys_category_record_mm.uid_local = 2 OR sys_category_record_mm.uid_local = 3)
```

Hat jemand von euch eine Idee, wie ich das am Besten lösen kann?

Bin für jeden Tipp dankbar!!

Viele Grüße!

## Antworten

### [#2](https://www.typo3.net/d/121778-seiten-anhand-von-system-kategorien-auslesen-sql/2) · identiq · 2016-01-29

Und so geht es mit TYPO3 - Boardmitteln:

```typoscript
20 = HMENU
20 {
    special = categories
    # Show all pages with categories 1, 2 and 3
    special.value = 1,2,3
    1 = TMENU
    1.NO {
        # get comma-separated list of uid's of the categories the page belongs to
        stdWrap.field = _categories
        # check the _categories field if it contains the categories you need.
        stdWrap.if {
            value = 2,3
            equals.field = _categories
        }
    }
}
```

---

Quelle: „Seiten anhand von System-Kategorien auslesen (SQL)“, typo3.net, https://www.typo3.net/d/121778-seiten-anhand-von-system-kategorien-auslesen-sql
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
