mm Query für mehrere mm-Beziehungen?

  • yahooooo yahooooo
    Sternenflotten-Admiral
    0 x
    234 Beiträge
    0 Hilfreiche Beiträge
    07. 07. 2009, 15:47

    Hi,
    gibts eigentlich eine elegante Funktion für die SQL-Abfrage von Datensätzen, die mehrere mm-Beziehungen besitzen? Für eine geht ja exec_SELECT_mm_query().

    Oder muss ich da jetzt doch 200 Zeilen SQL tippen?

    Wollte gerade in tt_news mal spicken, aber irgendwie finde ich mich in den 3300 Zeilen Code nicht mehr zurecht ;)


  • 1
  • npre npre
    Jedi-Ritter
    0 x
    131 Beiträge
    0 Hilfreiche Beiträge
    07. 07. 2009, 15:58

    hatte mal das gleiche problem und auf mein post hier habe ich leider keine antwort erhalten. wenn du eine lösung hast, würde ich mich über die info freuen!
    lg
    martin

  • yahooooo yahooooo
    Sternenflotten-Admiral
    0 x
    234 Beiträge
    0 Hilfreiche Beiträge
    07. 07. 2009, 16:15

    Ah ja. Deinen Thread hab ich schon gesehen. Mit der Kommaliste würde es auch gehen, aber das finde ich persönlich nicht so schön.

  • matin matin
    R2-D2
    0 x
    91 Beiträge
    0 Hilfreiche Beiträge
    10. 07. 2012, 06:38

    ... ist zwar schon ein uraltthread, aber da ich grad vor selbigem problem stand, hier mal ein lösungsansatz mit left join:

    tx_tableone hat mm mit tx_tabletwo und tx_tabletwo hat mm mit tx_tablethree:

    1. $query = ('SELECT *, tx_tableone.uid AS one_uid, tx_tabletwo.uid AS two_uid, tx_tablethree.uid AS three_uid
    2. FROM tx_tableone
    3. LEFT JOIN tx_tableone_two_mm ON (tx_tableone_two_mm.uid_local = tx_tableone.uid)
    4. JOIN tx_tabletwo ON (tx_tabletwo.uid = tx_tableone_two_mm.uid_foreign)
    5.  
    6. LEFT JOIN tx_tabletwo_three_mm ON (tx_tabletwo_three_mm.uid_local = tx_tabletwo.uid)
    7. JOIN tx_tablethree ON (tx_tablethree.uid = tx_tabletwo_three_mm.uid_foreign)
    8.  
    9. AND tx_tableone.hidden = 0 AND tx_tableone.deleted = 0 AND tx_tabletwo.hidden = 0 AND tx_tabletwo.deleted = 0 AND tx_tablethree.hidden = 0 AND tx_tablethree.deleted = 0
    10.  
    11. ');
    12. $res = $GLOBALS['TYPO3_DB']->sql_query($query);
    13.  
    14. //Anzahl der Datensaetze ueberpruefen, die als Ergebnis geliefert werden
    15. $anzahlDetails = $GLOBALS['TYPO3_DB']->sql_num_rows($res);
    16.  
    17. if($anzahl != 0) {
    18. while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
    19.  
    20. }
    21.  
    22. }

  • 1