Kome mit meinen Join nicht klar

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

  • Kome mit meinen Join nicht klar

    Folgenen Code habe ich mir erstellt:
    Code:
            $T1_SQL = "SELECT * FROM KM_KundenDaten_Server WHERE KDID ='".$_SESSION['KM']['KDID']."'";
            $T1_Res = mysql_query($T1_SQL)or die('Fehler in der T1: '.mysql_error());
            while ($T1_row = mysql_fetch_array($T1_Res))
            {
                $T2_SQL = "SELECT * FROM KM_Server WHERE ServerID = '".$T1_row['ServerID']."'";
                $T2_Res = mysql_query($T2_SQL)or die('Fehler in der T2: '.mysql_error());
                while ($T2_row = mysql_fetch_array($T2_Res))
                {
                    $T3_SQL = "SELECT ServerIP, SUM(TotalTraffik) AS TTraffik FROM KM_Traffik_Server WHERE ServerIP='".$T2_row['ServerIP']."' GROUP BY TraffikMonat AND TraffikJahr";
                    $T3_Res = mysql_query($T3_SQL)or die('Fehler in der T3: '.mysql_error());
                    while ($T3_row = mysql_fetch_array($T3_Res))
                    {
                        echo 'Server-Name => '.$T2_row['ServerName'].'<br>';
                        echo 'Server-IP => '.$T3_row['ServerIP'].'<br>';
                        $Traffik_G = $T3_row['TTraffik'] / 1024 / 1024 / 1024;
                        echo 'Traffik => '.sprintf("%01.4f",$Traffik_G).' GB<hr>';
                    }
                }
                
            }
    Daraus habe ich folgenden Join gemacht und der wirft mir nur einen Datensatz aus statt 6:
    Code:
            $T1_SQL = "SELECT a.*, b.*, c.*, SUM(c.TotalTraffik) AS TTraffik 
                       FROM KM_KundenDaten_Server a 
                            LEFT OUTER JOIN KM_Server b ON a.ServerID = b.ServerID 
                                LEFT OUTER JOIN KM_Traffik_Server c ON a.ServerID = b.ServerID AND b.ServerIP = c.ServerIP
    				   WHERE a.KDID ='".$_SESSION['KM']['KDID']."'
    				   GROUP BY c.TraffikMonat AND c.TraffikJahr";
            
    		$T1_Res = mysql_query($T1_SQL)or die('Fehler in der T1: '.mysql_error());
            
    		while ($T1_row = mysql_fetch_array($T1_Res))
            {
                
                        echo 'Server-Name => '.$T1_row['ServerName'].'<br />';
                        echo 'Server-IP => '.$T1_row['ServerIP'].'<br />';
                        $Traffik_G = $T1_row['TTraffik'] / 1024 / 1024 / 1024;
                        echo 'Traffik => '.sprintf("%01.4f",$Traffik_G).' GB<hr />';
                    
            }
    Wo ist hier meine Denkfehler?
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

  • #2
    Jetzt geht:
    Code:
            $T1_SQL = "SELECT a.*, b.*, c.*, SUM(c.TotalTraffik) AS TTraffik 
                       FROM KM_Server b 
                            LEFT OUTER JOIN KM_KundenDaten_Server a ON a.ServerID = b.ServerID 
                                LEFT OUTER JOIN KM_Traffik_Server c ON a.ServerID = b.ServerID AND b.ServerIP = c.ServerIP
    				   WHERE a.KDID ='".$_SESSION['KM']['KDID']."'
    				   GROUP BY c.TraffikMonat, 
    				            c.TraffikJahr, 
    				            b.ServerID";
    der fehler lag im Group by!
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

    Kommentar


    • #3
      hmm,

      hilft vielleicht nicht, aber
      Code:
      GROUP BY c.TraffikMonat AND c.TraffikJahr
      wieso schreibst du da AND? ich kenns nur mit komma? ist das was anderes?

      EDIT:
      hmm, ok
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar

      Lädt...
      X