Announcement

Collapse
No announcement yet.

Datenbankabfrage

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenbankabfrage

    Liebe Leute!

    Folgende Struktur liegt vor
    Code:
     Tabellenstruktur für Tabelle `players`
    -- 
    
    CREATE TABLE `players` (
     ..........................................
      `max_games` int(11) NOT NULL default '0',
      `wins` int(11) NOT NULL default '0',
      `losses` int(11) NOT NULL default '0',
      `winpct` int(11) NOT NULL default '0',
      `timebank` enum('0','1') NOT NULL default '0',
      `contributor` enum('0','1') NOT NULL default '0',
      `ip` varchar(20) NOT NULL default '',
     ....................
    )
    Ich möchte mit einer Abfrage alle Datensätze angezeigt bekommen, bei dem sich im Feld ip die gleichen Einträge befinden.

    Aber wie??

    Gruß aus Berlin

  • #2
    Du kannst einfach ein Group By benutzen, um gleiche IP Adresse zu gruppieren.
    Ansonsten musstu ein IP-Adresse zur Vergleichen haben, in diesem Fall ist es noch einfacher.

    select * from players where ip=...

    oder

    select * from players group by ip

    Beste Grüße

    Comment


    • #3
      Code:
      SELECT *
      FROM players
      GROUP BY ip
      Kann nicht funktionieren! Was soll er Dir denn anzeigen?

      [highlight=sql]
      SELECT *
      FROM players
      WHERE ip IN
      (
      SELECT ip
      FROM players
      GROUP BY ip
      HAVING COUNT(*) > 1
      )
      [/highlight]

      Comment


      • #4
        Originally posted by fanderlf View Post
        Code:
        SELECT *
        FROM players
        GROUP BY ip
        Kann nicht funktionieren! Was soll er Dir denn anzeigen?

        [highlight=sql]
        SELECT *
        FROM players
        WHERE ip IN
        (
        SELECT ip
        FROM players
        GROUP BY ip
        HAVING COUNT(*) > 1
        )
        [/highlight]
        Hallo!

        Habe das mal versucht:

        SELECT * FROM players WHERE ip IN(SELECT ip FROM players GROUP BY ip HAVING COUNT(*) > 1)

        und erhalte:

        MySQL meldet:
        #1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT ip FROM players GROUP BY ip HAVING COUNT( * ) > 1 ) LIM

        Gruß aus Berlin

        Comment


        • #5
          Das funktioniert bei mir

          [highlight=sql]
          with players as
          (
          SELECT 'Michael' as playername, '123.123.123.123' as ip FROM dual
          UNION ALL
          SELECT 'Thomas' as playername, '123.123.123.123' as ip FROM dual
          UNION ALL
          SELECT 'Stefan' as playername, '123.456.123.123' as ip FROM dual
          UNION ALL
          SELECT 'Manfred' as playername, '123.123.789.123' as ip FROM dual
          )
          SELECT *
          FROM players
          WHERE ip IN
          (
          SELECT ip
          FROM players
          GROUP BY ip
          HAVING COUNT(ip) > 1
          )
          [/highlight]

          Code:
          PLAYERNAME IP              
          ---------- --------------- 
          Michael    123.123.123.123 
          Thomas     123.123.123.123 
          
          2 rows selected
          Wahrscheinlich mag er COUNT(*) im Having nicht.

          Comment


          • #6
            Hallo,
            Originally posted by artüs View Post
            ...Check the manual that corresponds to your MySQL server version for the right syntax...
            Welche MySQL Server Version verwendest du denn. Es gibt Versionen die können keine Subselects.

            Gruß Falk
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment


            • #7
              Originally posted by fanderlf View Post
              Das funktioniert bei mir...
              Vlt. unter Oracle aber sicher nicht unter MySQL!
              Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

              Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

              Comment


              • #8
                MySQL unterstützt doch auch Having. Sollte doch dann eigentlich nicht so schwer umzusetzen sein...

                Comment


                • #9
                  Originally posted by fanderlf View Post
                  MySQL unterstützt doch auch Having. Sollte doch dann eigentlich nicht so schwer umzusetzen sein...
                  Having schon, aber kein "WITH ... AS" und Subselects erst ab Version 4.1.

                  Gruß Falk
                  Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                  Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                  Comment


                  • #10
                    das with ... as... ist nur für beispieldaten. Kann man auch einfach weglassen und auf der normalen Tabelle laufen lassen.
                    Das mit den SubSelects wusste ich nicht

                    Ohne subselects und ohne nen richtigen primary key wirds schwierig.

                    Comment

                    Working...
                    X