SQL JOIN Befehl

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

  • SQL JOIN Befehl

    Dies ist meine datei. Diese soll angezeigt werden

    PHP-Code:
    <?php
    include ("include/db_connect.php");
    $daten_SQL "SELECT cd_test_1.album_id, cd_test_1.artist_id, cd_test_1.kategorie, album_1.album_name, artist_1.artist_name
    FROM artist_1 RIGHT JOIN album_1 RIGHT JOIN cd_test_1 ON album_1.album_id = cd_test_1.album_id ON artist_1.artist_id = cd_test_1.artist_id
    WHERE cd_test_1.kategorie='
    $kategorie'
    ORDER BY artist_1.artist_name"
    ;
    $daten_result mysql_query($daten_SQL) or die (mysql_error() );
    while(
    $daten mysql_fetch_array($daten_result)){
    echo 
    $daten['artist_name'];
    echo 
    $daten['album_name'];
    }
    ?>
    doch ich bekomme immer diesen fehler
    You have an error in your SQL syntax near 'RIGHT JOIN cd_test_1 ON album_1.album_id = cd_test_1.album_id ON artist_1.artist' at line 2
    wo liegt da der fehler? eigentlich ist alles richtig angegeben.
    meine tabellenstrukturen sind diese
    # Tabellenstruktur für Tabelle `album_1`
    #

    CREATE TABLE album_1 (
    album_id int(11) NOT NULL auto_increment,
    album_name varchar(50) NOT NULL default '',
    artist_id int(11) NOT NULL default '0',
    release_datum varchar(20) NOT NULL default '',
    cover varchar(250) NOT NULL default '',
    bemerkung longtext NOT NULL,
    PRIMARY KEY (album_id),
    UNIQUE KEY album_name (album_name),
    KEY album_id (album_id)
    ) TYPE=MyISAM;
    # --------------------------------------------------------

    #
    # Tabellenstruktur für Tabelle `artist_1`
    #

    CREATE TABLE artist_1 (
    artist_id int(11) NOT NULL auto_increment,
    artist_name varchar(50) NOT NULL default '',
    genre_id int(11) NOT NULL default '0',
    coast_id int(11) NOT NULL default '0',
    bemerkung longtext NOT NULL,
    bild varchar(250) NOT NULL default '',
    name varchar(150) NOT NULL default '',
    geburtsdatum varchar(150) NOT NULL default '',
    geburtsort varchar(150) NOT NULL default '',
    PRIMARY KEY (artist_id),
    KEY artist_id (artist_id)
    ) TYPE=MyISAM;
    # --------------------------------------------------------

    #
    # Tabellenstruktur für Tabelle `cd_test_1`
    #

    CREATE TABLE cd_test_1 (
    cd_test_id int(11) NOT NULL auto_increment,
    album_id int(11) NOT NULL default '0',
    artist_id int(11) NOT NULL default '0',
    bemerkung longtext NOT NULL,
    zeit varchar(50) NOT NULL default '',
    bewertung int(1) NOT NULL default '0',
    kategorie varchar(200) NOT NULL default '',
    PRIMARY KEY (cd_test_id)
    ) TYPE=MyISAM;

  • #2
    bei dem ersten Join fehlt die ON Anweisung
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      sorry, aber könntest du es mal in den oberen code von mir eintragen und kennzeichnen?
      denn entweder bin ich einfach nur blöd........oder du hast unrecht.
      aber ich glaube eher, dass es ersteres ist

      wäre nett wenn du es eben kennzeichnen könntest

      Kommentar


      • #4
        RIGHT JOIN album_1 [COLOR=red]hier fehlt was[/COLOR] RIGHT JOIN cd_test_1
        TBT

        Die zwei wichtigsten Regeln für eine berufliche Karriere:
        1. Verrate niemals alles was du weißt!


        PHP 2 AllPatrizier II Browsergame

        Kommentar


        • #5
          wenn ich da ein "ON" einsetze, erhalte ich diese fehlermeldung:

          You have an error in your SQL syntax near 'JOIN cd_test_1 ON album_1.album_id = cd_test_1.album_id ON artist_1.artist_id = ' at line 2

          Kommentar


          • #6
            schau doch mal bitte an welcher Stelle [COLOR=red]hier fehlt was[/COLOR] steht


            select ...
            from ...
            left join ... on ...
            left join ... on ...
            left join ... on ...
            where ....
            TBT

            Die zwei wichtigsten Regeln für eine berufliche Karriere:
            1. Verrate niemals alles was du weißt!


            PHP 2 AllPatrizier II Browsergame

            Kommentar


            • #7
              ich weiß nicht, worauf du hinauswillst. sorry

              oder vielleicht dieses hier?

              SELECT cd_test_1.album_id, cd_test_1.artist_id, cd_test_1.kategorie, album_1.album_name, artist_1.artist_name
              FROM artist_1 RIGHT JOIN album_1 ON cd_test_1 RIGHT JOIN cd_test_1 ON album_1.album_id = cd_test_1.album_id ON artist_1.artist_id = cd_test_1.artist_id
              WHERE cd_test_1.kategorie='$kategorie'
              ORDER BY artist_1.artist_name

              ne, glaube ich weniger?!

              Kommentar


              • #8
                so, jetzt schaust du dir das an, was du fett gemacht hast und vergleichst es mit den anderen ON-teilen und siehst den unterschied
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  SELECT cd_test_1.album_id, cd_test_1.artist_id, cd_test_1.kategorie, album_1.album_name, artist_1.artist_name
                  FROM artist_1 RIGHT JOIN album_1 ON cd_test_1.album_id = album_1.album_id RIGHT JOIN cd_test_1 ON album_1.album_id = cd_test_1.album_id ON artist_1.artist_id = cd_test_1.artist_id
                  WHERE cd_test_1.kategorie='$kategorie'
                  ORDER BY artist_1.artist_name

                  ne, so isses glaube ich auch nicht richtig. dann habe ich ja eine line doppelt

                  oder muss ich es so machen (mit klammern dazwischen)?
                  SELECT cd_test_1.album_id, cd_test_1.artist_id, cd_test_1.kategorie, album_1.album_name, artist_1.artist_name
                  FROM artist_1 RIGHT JOIN (album_1 RIGHT JOIN cd_test_1 ON album_1.album_id = cd_test_1.album_id) ON artist_1.artist_id = cd_test_1.artist_id
                  WHERE cd_test_1.kategorie="Punk"
                  ORDER BY artist_1.artist_name;
                  ne, da fehlt auch wieder was

                  Kommentar


                  • #10
                    OffTopic:
                    @jazzdee
                    warum postest du nicht gleich deine sql anfragen mit deiner problemstellung in nur einer zeile? dann könntest du dir auch das enter-drücken komplett sparen.


                    eine sql-query kann auch schön formatiert werden, sodass man sie auch lesen kann.


                    Code:
                    SELECT
                        cd_test_1.album_id,
                        cd_test_1.artist_id,
                        cd_test_1.kategorie,
                        album_1.album_name,
                        artist_1.artist_name
                    
                    FROM
                        artist_1
                            RIGHT JOIN album_1 ON cd_test_1.album_id = album_1.album_id
                            RIGHT JOIN cd_test_1 ON album_1.album_id = cd_test_1.album_id [b]ON artist_1.artist_id = cd_test_1.artist_id[/b]
                    
                    WHERE
                        cd_test_1.kategorie='$kategorie'
                    
                    ORDER BY
                        artist_1.artist_name
                    dabei fällt einem auf, dass das fett-gemachte irgendwo ein problem sein könnte....
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      kann man das nicht einfach weglassen (das fett gedruckte)? dann müsste das auch gehen!?

                      Kommentar


                      • #12
                        Original geschrieben von jazzdee
                        kann man das nicht einfach weglassen (das fett gedruckte)? dann müsste das auch gehen!?
                        das kann einfach sein, dann müsste man das mal ausprobieren...
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          wenn ich das dann so lasse, bekomme ich diese ausgaben
                          - The Chronic 2001 - Get Rich Or Die Tryin' - Der beste tag meines Lebens - The Eminem Show - The Marshall Mathers LP - The Eminem Show - Der beste tag meines Lebens - Godzilla - Power of the Dollar - Get Rich Or Die Tryin' - All Eyes on Me - The Eminem Show - All Eyes on Me - Get Rich Or Die Tryin' - Der beste tag meines Lebens - The Marshall Mathers LP - Power of the Dollar - The Chronic 2001 - All Eyes on Me - Der beste tag meines Lebens - The Chronic 2001 - Power of the Dollar - Get Rich Or Die Tryin' - The Eminem Show - The Marshall Mathers LP - Power of the Dollar - The Chronic 2001 - The Chronic 2001 - All Eyes on Me - Der beste tag meines Lebens - Godzilla - The Marshall Mathers LP - Power of the Dollar - The Marshall Mathers LP - Godzilla2Pac - Godzilla2Pac - Get Rich Or Die Tryin'2Pac - All Eyes on Me2Pac - The Eminem Show2Pac - Godzilla50 Cent - Godzilla50 Cent - Get Rich Or Die Tryin'50 Cent - All Eyes on Me50 Cent - The Eminem Show50 Cent - GodzillaBizzy Bone - GodzillaBizzy Bone - Get Rich Or Die Tryin'Bizzy Bone - All Eyes on MeBizzy Bone - The Eminem ShowBizzy Bone - GodzillaCanibus - Get Rich Or Die Tryin'Canibus - All Eyes on MeCanibus - The Eminem ShowCanibus - GodzillaCanibus - GodzillaDr Dre - GodzillaDr Dre - Get Rich Or Die Tryin'Dr Dre - All Eyes on MeDr Dre - The Eminem ShowDr Dre - GodzillaEminem - Get Rich Or Die Tryin'Eminem - All Eyes on MeEminem - The Eminem ShowEminem - GodzillaEminem - GodzillaIce Cube - GodzillaIce Cube - Get Rich Or Die Tryin'Ice Cube - All Eyes on MeIce Cube - The Eminem ShowIce Cube - GodzillaKool Savas - GodzillaKool Savas - Get Rich Or Die Tryin'Kool Savas - All Eyes on MeKool Savas - The Eminem ShowKool Savas - GodzillaNas - GodzillaNas - Get Rich Or Die Tryin'Nas - All Eyes on MeNas - The Eminem ShowNas - GodzillaNotorious BIG - Get Rich Or Die Tryin'Notorious BIG - All Eyes on MeNotorious BIG - The Eminem ShowNotorious BIG - GodzillaNotorious BIG - GodzillaSnoop Dogg - GodzillaSnoop Dogg - Get Rich Or Die Tryin'Snoop Dogg - All Eyes on MeSnoop Dogg - The Eminem ShowSnoop Dogg - GodzillaTreach - GodzillaTreach - Get Rich Or Die Tryin'Treach - All Eyes on MeTreach - The Eminem ShowTreach - GodzillaYukmouth - GodzillaYukmouth - Get Rich Or Die Tryin'Yukmouth - All Eyes on MeYukmouth - The Eminem ShowYukmouth - Godzilla
                          was mache ich denn falsch?

                          Kommentar


                          • #14
                            Original geschrieben von jazzdee
                            was mache ich denn falsch?
                            du vergisst viellleicht ein <br /> in der ausgabe, sodass es im browser auch untereinander steht?
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar


                            • #15
                              zur zeit sieht es bei mir so aus:

                              PHP-Code:
                              <?php
                              include ("include/db_connect.php");
                              $daten_SQL "SELECT
                                  cd_test_1.album_id,
                                  cd_test_1.artist_id,
                                  cd_test_1.kategorie,
                                  album_1.album_name,
                                  artist_1.artist_name

                              FROM
                                  artist_1
                                      RIGHT JOIN album_1 ON cd_test_1.album_id = album_1.album_id
                                      RIGHT JOIN cd_test_1 ON album_1.album_id = cd_test_1.album_id [b]ON artist_1.artist_id = cd_test_1.artist_id[/b]
                                      
                              WHERE
                                  cd_test_1.kategorie='
                              $kategorie'

                              ORDER BY
                                  artist_1.artist_name"
                              ;
                              $daten_result mysql_query($daten_SQL) or die (mysql_error() );
                              while(
                              $daten mysql_fetch_array($daten_result)){
                              echo 
                              $daten['artist_name'];
                              echo 
                              "&nbsp;-&nbsp;";
                              echo 
                              $daten['album_name']."<br>";
                              }
                              ?>
                              das fettgedruckte ist immer noch nicht richtig.
                              kannst du mir nicht die eine zeile eben sagen?
                              ich möchte php lernen und nicht probieren.
                              wenn ich es einmal gemacht habe, werde ich es auch ein zweitesmal schaffen.

                              Kommentar

                              Lädt...
                              X