---
title: "Kniffliges Problem bei JOIN in Extbase"
url: "https://www.typo3.net/d/107396-kniffliges-problem-bei-join-in-extbase"
source: "typo3.net"
tags: ["Extensions","Extbase","Frage"]
created: "2011-09-21"
last_reply: "2015-09-03"
replies: 6
solved: false
page: 1
pages: 1
lang: "de"
---

# Kniffliges Problem bei JOIN in Extbase

Extensions › Extbase · 6 Antworten · gestartet 2011-09-21

## Eröffnungsbeitrag

**einpraegsam.​net** · 2011-09-21 · [Beitrag #1](https://www.typo3.net/d/107396-kniffliges-problem-bei-join-in-extbase/1)

Wenn ich ein Oberobjekt mit einem Unterobjekt habe (Zuweisung z.B. 1:n mit IRRE), kann ich mit einer Suche im Extbase Repository schön beide title Felder durchsuchen:

```php
$or[] = $query->like('title', '%' . $search . '%');
$or[] = $query->like('unterobjekt.title', '%' . $search . '%');
$constraint = $query->logicalOr($or);
```

Extbase macht daraus so eine Abfrage:

```html
SELECT DISTINCT oberobjekt.*

FROM oberobjekt 

LEFT JOIN unterobjekt ON oberobjekt.uid=unterobjekt.oberobjekt

WHERE (oberobjekt.title LIKE '%test%' OR unterobjekt.title LIKE '%test%')

AND oberobjekt.deleted=0 AND (...)

AND unterobjekt.deleted=0 AND (...)
```

Das Problem ergibt sich aber, wenn das Oberobjekt keine Unterobjekte zugewiesen bekommen hat - hier ist "AND unterobjekt.deleted=0" dann falsch.

Jemand eine Idee, wie sich das lösen lässt??

## Antworten

### [#2](https://www.typo3.net/d/107396-kniffliges-problem-bei-join-in-extbase/2) · typonewbe · 2011-09-21

Hallo einpraegsam.net,

schon versucht EnableFields auszuschalten um es dann für das Oberobjekt Separat wieder zu setzen?

```php
$query->getQuerySettings()->setRespectEnableFields(FALSE);
$query->equals('deleted',0);
```

Alternativ über das Statement die SQL Selber zusammenbauen. Ich denke es lässt sich im Moment nicht ganz vermeiden.

```php
$query->statement('SELECT fields from table where ...');
```

Gruß typonewbe

### [#3](https://www.typo3.net/d/107396-kniffliges-problem-bei-join-in-extbase/3) · einpraegsam.​net · 2011-09-22

$query->getQuerySettings()->setRespectEnableFields(FALSE);
wäre immerhin schon mal ein Workarround, aber dann muss man sich die enabeFields Geschichten selber zusammenbasteln...

Eine saubere Lösung scheint es derzeit nicht zu geben.

### [#4](https://www.typo3.net/d/107396-kniffliges-problem-bei-join-in-extbase/4) · typonewbe · 2011-09-23

Hallo,

nein denke nicht hab auch noch einmal im core von Extbase versucht was zu finden aber sieht erstmal für solche Sachen nicht so toll aus.

Andere Frage wie hast du es geschafft dir das SQL Statment mal ausgeben zu lassen ist nämlich son Ding wo ich immer verzweifle.

Danke schon mal im Voraus

Gruß typonewbe

### [#5](https://www.typo3.net/d/107396-kniffliges-problem-bei-join-in-extbase/5) · einpraegsam.​net · 2011-09-23

Fehler in Query einbauen. Zusammen mit aktiviertem SQL Debug im Install Tool bekommst du die Query im Frontend angezeigt.

```php
$or[] = $query->like('titleXXXX', '%' . $search . '%');
```

(Man möge mich schlagen, wenn es einen schöneren Weg gibt)

### [#6](https://www.typo3.net/d/107396-kniffliges-problem-bei-join-in-extbase/6) · typonewbe · 2011-09-23

Hallo einpraegsam.net,

vielen Dank für die Hilfe ja s hat geklappt wenn man sich dann noch alles ins devlog schreiben lässt kann man auch damit arbeiten. :)

Ist zwar nicht optimal immer absichtlich einen Fehler zu produzieren
aber zur Not frist ...

;)

Gruß typonewbe

### [#7](https://www.typo3.net/d/107396-kniffliges-problem-bei-join-in-extbase/7) · Libelah · 2015-09-03

Hallo,

ich hänge aktuell am selben Problem. Gibt es eventuell mittlerweile eine schönere Lösung?
Alternativ finde ich diese Lösung noch ganz praktikabel:
<https://somethingphp.com/custom-queries-in-extbase/>

Gruß

EDIT: Oder gibt es alternativ nicht vielleicht eine Möglichkeit eigene enableColums zu definieren, für die man den entsprechenden SQL-Code selbst vorgibt? Was ich nämlich abbilden will, sind eigene Bedingungen dafür ob ein Objekt angezeigt werden soll oder nicht. Das hängt aber von einer Option in (optionalen) Kind-Datensätzen ab. Frage ich die in einer normalen Query ab, schließe ich alles aus was den entsprechenden Kind-Datensatz gar nicht hat.

---

Quelle: „Kniffliges Problem bei JOIN in Extbase“, typo3.net, https://www.typo3.net/d/107396-kniffliges-problem-bei-join-in-extbase
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
