3 Tabellen verknüpfen

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

  • 3 Tabellen verknüpfen

    Hi !

    Habe folgende Tabellen :

    datuser: infos vom user und user ist eindeutig
    dateonline: user die momentan online sind und user ist eindeutig
    dateuser_profil: user die zuletzt mein profil angesehen haben, user eindeutig


    nun möchte ich die user anzeigen, die online sind aber nur in der Tabelle dateuser_profil stehen.

    er gibt mir leider alle aus !

    $anzahl ="SELECT * FROM dateuser_profil as dp
    LEFT OUTER JOIN dateuser as du ON dp.user_profil=du.user
    LEFT OUTER JOIN dateonline as do ON du.user = do.user
    WHERE du.status = 'a' ORDER BY do.user ";

  • #2
    klar gibt er dir alle aus. wo filterst du denn die raus, die du nicht haben willst?

    Kommentar


    • #3
      Hi, meierhans!
      Also so, wie ich das verstanden hab, willst du die User haben die online und zuletzt auf deinem Profil gewesen sind. (INNER JOIN = Schnittmenge)

      Versuchs mal damit:
      PHP-Code:
      SELECT du.*
      FROM dateuser du
      INNER JOIN dateuser_profil dp ON 
      (dp.user_profil du.user AND du.status 'a')
      INNER JOIN dateonline      do ON (do.user        du.user)
      ORDER BY do.user 
      Zuletzt geändert von ShoAn; 13.12.2005, 18:54.
      nicht alles, was nass ist, kann fliegen

      Kommentar


      • #4
        3 Tabellen verknüpfen

        Hi !

        Danke, es funzt !

        Nur ein kleines Problem, er soll mir die online user als erstes ausgeben, zurzeit gibt er mir erst die offline user aus !

        Mit ASC funzt es auch nicht !

        Kommentar


        • #5
          nach was sortierst du?

          order by status asc???

          Kommentar


          • #6
            order by do.user DESC

            Kommentar


            • #7
              was steht in dem feld drin? der username o.ä.? warum sortierst du dann so?

              evtl. musst du auch nach online-date sortieren. kenne deine felder ja nicht.

              Kommentar


              • #8
                du selektierst nichts aus der dateonline-tabelle, dann kannst du auch nicht nach einer Spalte der Tabelle sortieren.

                Kommentar


                • #9
                  ich habe eine andere abfrage inder es so finktioniert, obwohl ich danach nicht selektiere !

                  $anzahl ="SELECT du.user, du.bild, du.alt, du.bezirk, du.stadt, du.lebensstatus, du.tag, du.monat, du.jahr FROM dateuser as du
                  LEFT JOIN dateonline as do ON du.user=do.user where du.status = 'a' and du.user != '$o_user' ORDER BY do.user DESC limit 5";

                  Kommentar


                  • #10
                    Nochmal die Frage was in do.user steht.

                    Du musst natürlich NICHT aus der Tabelle selecten um nach einem Feld der Tabelle zu sortieren. Nur solltest du wenigstens letzteres tun.

                    Kommentar


                    • #11
                      in do.user stehen die online User mit ihrem Nicknamen.

                      Kommentar


                      • #12
                        Original geschrieben von meierhans
                        in do.user stehen die online User mit ihrem Nicknamen.
                        sowie eine Sessionid und das datum der Anmeldung !

                        Kommentar


                        • #13
                          alles in einem Feld? Na, das nenne ich Datenbank-Design.

                          Aber wie kommst du darauf, dass du anhand dieser Informationen nach online/offline sortieren kannst?

                          Kommentar


                          • #14
                            Original geschrieben von TobiaZ
                            alles in einem Feld? Na, das nenne ich Datenbank-Design.

                            Aber wie kommst du darauf, dass du anhand dieser Informationen nach online/offline sortieren kannst?

                            das war galube ich jetzt ein Mißverständnis, in der Spalte user = nickname; sessionid = id; datum = date ;

                            nun ja, und wenn dort nun alle angemeldeten User sich befinden, so kann ich sie auch als online user deklarieren !

                            Kommentar


                            • #15
                              ja, wer lesen kann ist klar im vorteil! Ich sprach von do.user, mehr nicht.

                              Aber woran du deine Online-User erkennst, solltest du wissen, oder? Ich weiß es nicht. Woher auch?

                              Kommentar

                              Lädt...
                              X