Ankündigung

Einklappen
Keine Ankündigung bisher.

Spieler Liste mit und ohne Clan Namen Anzeigen lassen

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

  • Spieler Liste mit und ohne Clan Namen Anzeigen lassen

    Ich steh momentan etwas an. Ich möchte eine Liste ausgeben aller Spieler und den zugehörigen Clan. Soweit auch kein Problem nur möchte ich auch die Spieler ausgeben die in keinen Clan sind.

    Mit dem Sql Befehl:
    PHP-Code:
    SELECT 
                 username
    lvlinsgexpstatus,gild_name 
                FROM 
                 accounts
    ,game_char,gilden_user,gilden 
                WHERE 
                 user_id
    =game_char.f_userid AND
                 
    user_id=gilden_user.f_userid AND
                 
    gilden_id f_gildenid 
    Erhalte ich nur Einträge von Spieler die im Clan sind. Das Problem an der Sache ist Spieler die nicht im Clan sind haben auch keinen Eintrag in der gilden_user Tabelle wodurch sie dann nicht geliste werden.

    Hab ich da einen Denkfehler im aufbau der Datenbank drin oder kann man das über einen Sql irgendwie lösen das beides auf einmal ausgeben wird.
    Also alle Spieler und deren Clanname oder eben kein Clanname wenn er in keinen Clan ist aber der Spieler soll trozdem auch gelistet werden.

    Ist es möglich die Daten mit einem Sql abzufragen oder muß ich einen umweg über 2 Sql befehle gehen.

    Im Anhang ein Diagram der Datenbank.

    Mfg Splasch


  • #2
    Dann kannst Du statt des INNER JOINs ein LEFT JOIN verwenden.

    Kommentar


    • #3
      Meinst du irgendwer kann aus deinem Diagramm etwas herauslesen? Bissl klein oder?

      Und zu Davids Post, INNER JOIN verwendest du hier weil du die Tabellen alle in FROM mit Komma trennst, das ist im Endeffekt ein INNER JOIN. Und daher solltest du dich mit LEFT JOIN auseinander setzen.

      Kommentar


      • #4
        Meinst du irgendwer kann aus deinem Diagramm etwas herauslesen? Bissl klein oder?
        Ja leider hat das Forum das automatisch verkleinert werd schaun das ich das auf einen Server spiele und dann den Link hier Posten.
        Diagram: http://lostheaven.bg-entwicklung.de/diagram.png

        Solang ich die Tabelle gilden raus lasse bekomm ich alle Spieler. Wenn ich den Fremdkey f_gildenid aus der Tabelle gilden_user einbeziehe bekommt ich nur mehr die Spieler die in einer Gilde sind.

        Lass ich die Fremdkey zuordnung weg dann sind alle Spieler in der selben gilde was ja dann auch net Stimmt.

        Hier bekomm ich nur Spieler aus der Gilde:
        PHP-Code:
        SELECT 
          username
        ,gild_name
        FROM 
         accounts
         LEFT JOIN gilden_user ON accounts
        .user_id gilden_user.f_userid,
         
        gilden
        WHERE 
         gilden_id 
        f_gildenid 
        Und und hier wenn ich dem Fremdkey nicht zu ordne alle Spieler aber alle auch mit dem selben Gilden Namen

        PHP-Code:
        SELECT  
         username
        ,gild_name
        FROM 
         accounts
         LEFT JOIN gilden_user ON accounts
        .user_id gilden_user.f_userid,
         
        gilden 
        Irgendwie bekomm ich das mit den 3 Tabellen nicht zusammen.
        Muß ich da auf die Gilden Tabelle auch einen LEFT JOIN schreiben und diese auf dem Fremdkey von der Gilden_user Tabelle gleich setzen?

        Mfg Splasch

        Kommentar


        • #5
          Ja mach bei gilden auch einen LEFT JOIN

          Kommentar


          • #6
            Danke

            So dürfte es Funktionieren:

            PHP-Code:
            SELECT  
             username
            ,gild_name
            FROM 
             accounts
             LEFT JOIN gilden_user ON accounts
            .user_id gilden_user.f_userid 
             LEFT JOIN gilden ON f_gildenid
            =gilden.gilden_id 
            Zusammen alles:
            PHP-Code:
            SELECT  
             username
            ,gild_name,lvl,insgexp,status
            FROM 
             accounts
             LEFT JOIN gilden_user ON accounts
            .user_id gilden_user.f_userid 
             LEFT JOIN gilden ON gilden_user
            .f_gildenid=gilden.gilden_id,
             
            game_char
            WHERE
             user_id
            =game_char.f_userid 
             ORDER BY insgexp DESC 
            Mfg Splasch

            Kommentar

            Lädt...
            X