[TYPO3-german] Nativer SQL mit zwei Tabellen
David Brünner
david.bruenner at t-online.de
Mon Jan 15 15:17:16 CET 2018
Hallo,
ich möchte gerne (auf einen Rutsch) zwei Tabellen abfragen.
Ich möchte alle Einträge aus der Tabelle 'tx_xxxx_xxx_gebaeude' und 'tx_xxx_xxx_ansprechpartner'
Dazu hab ich mir gedacht ich erstellte mir ein Model/Repository und mappe dieses auf eine der beiden gewünschten Tabellen:
in der setup.ts
[code]
KKSoftware\Kkbaybw\Domain\Model\FeSearch {
mapping {
tableName = tx_kkbaybw_domain_model_gebaeude
}
[/code]
Und im Model
[code]
namespace KKSoftware\Kkbaybw\Domain\Model;
class FeSearch extends BaseModel {
/**
* vorname
*
* @var string
*/
protected $vorname = '';
/**
* bezeichnung
*
* @var string
*/
protected $bezeichnung = '';
/**
* Returns the vorname
*
* @return string $vorname
*/
public function getVorname() {
return $this->vorname;
}
/**
* @return string $bezeichnung
*/
public function getBezeichnung() {
return $this->bezeichnung;
}
}
[/code]
das Repository hat nur eine Methode:
[code]
namespace KKSoftware\Kkbaybw\Domain\Repository;
class FeSearchRepository extends BaseRepository {
public function customQuery() {
$query = $this->createQuery();
$query->getQuerySettings()->setRespectStoragePage(false);
$query->statement('SELECT * FROM tx_kkbaybw_domain_model_gebaeude AS ge LEFT JOIN tx_kkbaybw_domain_model_ansprechpartner AS an ON ge.uid = an.gebaeude_id');
return $query->execute();
}
[/code]
Das liefert dann auch etwa 400 Ergebnisse:
[code]
TYPO3\CMS\Extbase\Persistence\Generic\QueryResult {
..
{
vorname => ''
bezeichnung = 'Gebäude1',
uid => 1,
_localizeUid => 1,
_languageUid => 0,
_versionedUid => 1,
pid => 1,
...
{
vorname => ''
bezeichnung => 'Gebäude1',
uid => 11,
_localizedUid => 11,
_languageUid => 0,
_verionedUid = 11,
pid => 1
}
..
}
[/code]
D.h. der Teil der aus der Gebäude-Tabelle kommt ('bezeichnung') ist immer gefüllt.
Der Teile der dann aus Ansprechpartner kommt ('vorname') nicht.
Wie bekomme ich die gejointen Daten??
More information about the TYPO3-german
mailing list