[SQL allgemein] SELECT Anfrage gibt mehrere gleiche Datensätze aus trotz DISTINCT

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

  • [SQL allgemein] SELECT Anfrage gibt mehrere gleiche Datensätze aus trotz DISTINCT

    Hallo,

    ich habe da ein Problem in einer SELECT Anfrage, meines Scriptes und zwar soll dieses Script Content, zu einem ihm zugeordneten Artikel abrufen und den Artikel an sich, so und meine SELECT Anfrage dafür sieht wie folgt aus:

    PHP-Code:
    $select_art'SELECT DISTINCT  '
                     
    'article.article_id, article.article_title, content.acontent_id,
     content.acontent_tstamp, content.acontent_title '

                  
    'FROM '
                    
    'wcms_phpwcms_article AS article '
                  
    'LEFT JOIN '
                    
    'wcms_phpwcms_articlecontent AS content '
                  
    'ON '
                    
    'article.article_id = content.acontent_aid'
    , aber es werden irgendwie trotz DISTINCT gleiche Artikel mit ausgegeben, normalerweise soll aber der Artikel nur einmal erscheinen und darunter, denn der Content.

    Ist es jetzt vielleicht ein Denkfehler von mir oder was läuft da schief

    Hier nochmal die provisorische while Schleife, die das ausgibt.
    PHP-Code:
    while($row_art=mysql_fetch_array($query_art) or die(mysql_error())){
         echo 
    $row_art['article_id'];
         echo 
    "<br>".$row_art['article_title']."<br>";
        echo 
    "<b>".$row_art['acontent_title']."</b><br>";
        echo 
    "<b>".$row_art['acontent_tstamp']."</b><br><br>";
     } 
    // while 
    Ich danke schonmal im vorraus.

  • #2
    hast du zu einem artikel mehrere einträge in der contenttabelle?

    wenn ja, dann hast du ja nicht wirklich gleiche datensätze
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      was kommt denn als Ergebnis ? (wenn mehr als 5 ergebnisse, dann reicht auch ein auszug)

      mrhappies beitrag dürfte dir aber schon die lösung sagen

      Kommentar


      • #4
        GROUP BY eventuell
        Grüsse,
        Sebastian


        Profil Flex Freelancer
        Twitter twitter.com/flashhilfe
        Web Flash und Flex Community

        Kommentar


        • #5
          Hmm stimmt, ist denn der DISTINCT im Moment nicht auf die Artikeltabelle bezogen, wie könnte man das denn noch handhaben, dass erst der Artikel angezeigt wird und denn dadrunter der Content,

          Habe es schonmal damit versucht, dass ich in einer while Schleife, die Artikel ausgebe und in der 1. while Schleife eine weitere Abfrage starte und die denn in einer anderen while wiederrum ausgebe. Also quasi so:

          PHP-Code:
          while($row_art=mysql_fetch_array($query_art)){
             
          //Ausgabe Artikel......;
             
          $select_cont="SELECT alles zu Content Where usw.";
             
          $query_cont=mysql_query($select_cont);
             while(
          $row_cont=mysql_fetch_array($query_cont)){
             
          //Ausgabe Content;
             
          }


          Aber ich habe mir mal sagen lassen dass das die Datenbank das wohl nicht so mag, wenn man in einer while Schleife Datenbankabfragen macht. Und es kamen Fehlermeldungen.

          Und @MoRtAlAn

          Hier mal die Ausgabe der ersten drei:
          Code:
          4
          Artikelsuche
          
          20040313222530
          
          4
          Artikelsuche
          Artikelsuche auf meiner Seite
          20040304122618
          
          5
          News
          So und nun ein weiterer test
          20040304130610

          Kommentar


          • #6
            4
            Artikelsuche

            20040313222530

            4
            Artikelsuche
            Artikelsuche auf meiner Seite
            20040304122618

            5
            News
            So und nun ein weiterer test
            20040304130610
            irgendwie is da keiner, wo alles gleich ist (distinct)...

            das is dann auch das Prob

            Kommentar


            • #7
              Hallo,

              Ja stimmt eigentlich. Ähm kennt ihr zufällig nen Link zu nem Tut, wo mal beschrieben ist, wie man alle Datensätze in einer while ausgibt, wenn mysql_fetch_array schon vorher ausgeführt wurde. Habe das nämlich bis jetzt immer so gemacht und bin eigentlich recht gut damit gefahren, aber diesmal geht es wohl nicht.

              Kommentar


              • #8
                Original geschrieben von Proggy
                kennt ihr zufällig nen Link zu nem Tut, wo mal beschrieben ist, wie man alle Datensätze in einer while ausgibt, wenn mysql_fetch_array schon vorher ausgeführt wurde.
                warum willst du denn mysql_fetch_array schon vor der schleife machen?
                (btw: um alle datensätze zu bekommen, musst du das fetchen doch sowieso in irgendeiner art von schleife machen.)
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Naja weil ich mir das jetzt so gedacht habe, dass ich erst alle Artikel hole, die denn per mysql_fetch_array in ein Array packe, denn mir den Content hole und mit WHERE die article_id mit der acontent_aid vergleiche, dass denn wieder in ein Array packe via fecth und die beiden Sachen denn Ausgebe erst Artikel und unter den Artikel den Content, quasi zwei Schleifen eine für die Artikel und in der für die Artikel denn die für den Content.

                  Oder mache ich mir da<s jetzt zu umständlich?

                  Kommentar

                  Lädt...
                  X