Quasilectrisches Medieninstitut - Joomla 3: Left Join und die MySQL Syntax richtig nutzen

Verfasst von Whykiki. / Verfasst am .

Joomla 3: Left Join und die MySQL Syntax richtig nutzen

Hin und wieder muss man einfach mal in eine Dokumentation gucken, in meinem Fall ist das eben das ein oder andere Mal die Joomla-Doku. So gut sie aber auch sein mag, geschrieben sind diese Dinger eben oft von den Entwicklern, in den meisten Fällen echte Vollnerds :-)

Und die denken nicht an Halbnerds wie mich, ich bin leider nicht in binärem Fruchtwasser gereift, soll heissen:Oftmals wird etwas vorausgesetzt, was grundsätzliches, auf das in der Doku nicht mehr eingegangen wird und so jemand wie ich sitzt dann dort und findet den Fehler im Codewald nicht.

Aktuellstes Beispiel: Die richtige Anwendung der Joomla-MySQL-Sytax im Bezug auf MySQL-Joins. Ich habe echt mehrere Stunden rumprobiert bis ich den Fehler entdeckt habe und weil ich mir sicher bin, dass ich nicht der Einzige bin, der GENAU DAS wissen will, schreibe ich das einfach mal auf.

Für mich, für dich, für alle :-)

Joomla MySQL-Syntax am Beispiel "LEFT JOIN"

Zuerst muss man wissen, dass es verschiedene Schreibweisen der Syntax gibt, die man aber alle benutzen kann. Deswegen zeige ich hier eben auch mehrere Beispiele, die aber am Ende alle das gleiche bedeuten, nur eben anders notiert.

// Verbindung zur Datenbank
$db = JFactory::getDbo(); // Neues Datenbakobjekt erzeugen $query = $db->getQuery(true); // Tabellen joinen und Query bauen $query ->select($db->quoteName(array('a.*', 'b.username', 'b.name')) ->from($db->quoteName('#__content', 'a')) ->join('LEFT', $db->quoteName('#__users', 'b') . ' ON (' . $db->quoteName('a.created_by') . ' = ' . $db->quoteName('b.id') . ')') ->where($db->quoteName('b.username') . ' = \'a%\''); // Ergebnisse als Liste eines stdClass objects $results = $db->loadObjectList();
 // Verbindung zur Datenbank $db = &JFactory::getDBO(); $query = ' SELECT u.*, a.*'. ' FROM #__ users as u'. ' LEFT JOIN #__content as a' . ' ON u.id = a.user_id' . ' WHERE u.id = 1'; $db->setQuery($query); $result = $db->loadObject(); print_r($result); 

Quasilectrisches Medieninstitut

Fellackerstr. 2
47495 Rheinberg

Impressum | Kontakt

Gemacht 2015 vom Quasilectrischen Medieninstitut