Hi,
ich bastel ja gerade an meinem Kalender Export rum und komme jetzt zur leidigen Stelle eines joins, da ich die Kategorie aus einer anderen Tabelle brauche.
Da ich mich aber natürlich an die Typo3 Coding-Richtlinien halten will, wollte ich fragen wie ich denn einen Join in der Wrapperklasse/den Executing queries realisiere?
(ich beziehe mich auf http://typo3.org/documentation/document-library/core-documentation/doc_core_cgl/current/view/1/4/#id2798317
bzw http://typo3.org/documentation/document-library/core-documentation/doc_core_cgl/current/view/1/4/#id2798542
)
Der Join,den ich einbauen will sieht in phpMyAdmin ungefähr so aus
SELECT `tx_calendar_item`. * , `tx_calendar_cat`.`title` AS eventtype
FROM `tx_calendar_item`
LEFT JOIN `tx_calendar_cat` ON ( `tx_calendar_item`.`category` = `tx_calendar_cat`.`uid` )
LIMIT 0 , 30
Könnt ihr mir da weiterhelfen?
Danke,
Typowasser
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
$select_fields='tx_calendar_item.* , tx_calendar_cat.title AS eventtype',
$from_table='tx_calendar_item, tx_calendar_cat',
$where_clause='tx_calendar_item.category = tx_calendar_cat.uid',
$groupBy='',
$orderBy='',
$limit='0 , 30');
while($this->internal['currentRow'] = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
blablabupp...
}
Das ist jetzt aber keine LEFT JOIN mehr.
woida schrieb
Das ist jetzt aber keine LEFT JOIN mehr.
Nö,
liefert aber das gewünschte Ergebnis. 😉
Außerdem siehe Wie MySQL LEFT JOIN optimiert
Hi,
sicher dass das dem left join entspricht - ich denke eher dass ist ein inner join.
Denn bei tx_calendar_item.category = tx_calendar_cat.uid wird doch dann 'false' zurückgegeben, wenn die category nicht als uid vorhanden ist.
Das Problem ist nämlich, dass in der categorie table keine uid 0 vorhanden ist - somit würden alle Einträge bei denen keine Kategorie gesetzt ist (category =0) nicht angezeigt werden, oder sehe ich das falsch?
EDIT: Ich habs gerade ausprobiert, leider werden dann nur die Zeilen angezeigt, bei denen die categorie existiert/gesetzt ist
Danke
Typowasser
$from_table = "`tx_calendar_item` LEFT JOIN `tx_calendar_cat` ON ( `tx_calendar_item`.`category` = `tx_calendar_cat`.`uid` )"
eucstyle: danke - genau das ist es - ich bin gerade unabhängig von dir draufgekommen. 😉 dennoch danke!
Ich finde es zwar immernoch ein wenig seltsam, dass es dafür keine schönere Lösung gibt, aber nun gut 😉
Danke und solved
mit den SQL-Methoden von cObj sind joins möglich - ausserdem sind inner joins auch mit mehreren Tabellen und Where möglich.