MySql mit Left join eingrenzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySql mit Left join eingrenzen

    Hallo,
    ich ermittle mit folgender Abfrage die Tiefe eines NestedSets baumes.
    Das funktioniert wunderbar. Jedoch gibt es mehrere Menubereiche (menu_area)

    Dies möchte ich nun berücksichtigen:

    meine Abfrage sieht so aus, gibt aber nichts aus. Was mach ich falsch?
    PHP-Code:
    $sql "SELECT n." $this->pk "
                  FROM " 
    $this->table " as n
                  JOIN " 
    $this->table " as p
                  LEFT JOIN " 
    $this->table " as q 
                      ON q.lft < n.lft
                        AND q.rgt > n.rgt
                        AND q.lft > p.lft
                        AND q.rgt < q.rgt
                      
                  WHERE (p." 
    $this->pk " = " $id "
                         AND n.lft > p.lft
                        AND n.rgt < p.rgt) AND
                      n.menu_area = '
    $menu_area_id' AND 
                      n.language = '"
    .$_SESSION['language_id']."' AND
                      n.site = '"
    .$_SESSION['site_id']."' AND                
                      p.menu_area = '
    $menu_area_id' AND 
                      p.language = '"
    .$_SESSION['language_id']."' AND
                      p.site = '"
    .$_SESSION['site_id']."' AND                
                      q.menu_area = '
    $menu_area_id' AND 
                      q.language = '"
    .$_SESSION['language_id']."' AND
                      q.site = '"
    .$_SESSION['site_id']."'
                   GROUP BY n.lft
               ORDER BY 
                      n.lft;"


  • #2
    Kannst du den Query mal in Reinform posten? Also anhand eines konkreten Beispiels ohne PHP-Code. Am Besten legst du auch einen SQL-Dump bei.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar

    Lädt...
    X