Ankündigung

Einklappen
Keine Ankündigung bisher.

Zwei Tabelle und Mehrere doppelte Einträge!!!

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

  • Zwei Tabelle und Mehrere doppelte Einträge!!!

    Hallo,
    habe hier eine Datenbank übernommen und habe jetzt ein Problem festgestellt.
    Die abfrage soll aus zwei Tabellen bestehen und soll die Leute auswählen die bestimmte
    vorraussettzungen haben.

    Tab1:
    id - Info - Datum
    11 - Test - '2008-10-02'
    13 - PP - '2009-11-05'
    11 - Auto - '2009-09-09'
    14 - 2 - '2009-09-24'

    Tab2:
    id - Text - Code
    11 - hallo - 12
    13 - LEER - 10
    11 - Test2 - 17
    14 - Hallo - 34

    jetzt sollen alle ausgesondert werden, die in Tab1 Datum <= 2009-09-25 und in Tab2 Code=12.
    Also die ID 11 und 14 muss da raus.
    Nur 13 muss bleiben.

    Jetzt wollte ich wissen wie kann ich die Abfrage schreiben um die id's raus zu werfen.
    Habe schon viel versucht aber, mein wissen reicht leider nicht mehr aus das zu lösen.

    Leider wirft die Datenbank nicht alle raus.

    Vielen Dank im Voraus c01001.
    Ob eine Sache gelingt, erfährst du nicht, wenn du darüber nachdenkst, sondern wenn du es ausprobierst.


  • #2
    Du machst einen Join und eine passende Where-Bedingung. Wo liegt dein Problem? Wie schauen deine bisherigen Versuche aus?
    www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
    Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih

    Kommentar


    • #3
      Code:
      select Tab1.id from Tab1, Tab2 wehere Tab1.Datum < '2009-09-25' and 
      Tab1.Info !='PP' and Tab2.Code != '12' and Tab1.id=Tab2.id group by Tab1.id ASC
      Usw.... ich habe es einfach gehalten, die Tabelle ist größer usw....
      Es sollte ca. 231 Daten ausgeben, es kommt aber >>251<<.

      Das sind die Datensätze ich nicht erfasst bekomme.

      Für ein Beispiel mit Join oder was mir helfen könnte wäre ich sehr Dankbar.
      Ob eine Sache gelingt, erfährst du nicht, wenn du darüber nachdenkst, sondern wenn du es ausprobierst.

      Kommentar


      • #4
        Zitat von c01001 Beitrag anzeigen
        Es sollte ca. 231 Daten ausgeben, es kommt aber >>251<<.
        Aha. 251 sind doch "ca. 231"?!
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          Mach doch mal ein konkretes Beispiel mit Daten, mit Angabe, welche Daten zuviel sind. Welche Daten sind zuwenig. "Ca. 231" nützt uns leider gar nichts.
          www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
          Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih

          Kommentar


          • #6
            Hallo, sry war unterwegs.
            Also es geht darum aus drei Tabellen bestimmte ids anzuzeigen die bestimmte vorraussetzungen haben.

            Das Problem ist ids die 2 oder mehr datum und codes habe tauch in mein Ergebnis auf.
            Als Beispiel
            id - code
            11 - 10
            11 - 11
            11 - 12
            11 - 24
            12 - 13
            12 - 10

            und mit datum das gleiche:
            id - datum
            11 - '2009-09-21'
            11 - '2009-03-13'
            11 - '2009-01-01'

            Ich kriege die ids nicht rausgeworfen.
            alle ids die 12 haben mussen raus oder datum grösser ist als '2009-09-20'
            Wie ihr sieht sind ids noch da mit anderen werten die hier angegeben sind.
            und aus diesen gründ habe ich 20 Datensätze zu viel, die eigentlich nicht angezeigt werden sollten.
            Code:
            SELECT Tab1.id FROM Tab1, Tab2
            where
            Tab1.id=Tab2.id and
            (Tab2.Code != '12') and (Tab2.Datum <= '2009-09-20') and (Tab1.Info != 'PP')
            group by Tab1.id
            Ob eine Sache gelingt, erfährst du nicht, wenn du darüber nachdenkst, sondern wenn du es ausprobierst.

            Kommentar


            • #7
              Was für ein Datentyp hat denn die Spalte "Tab2.Code" ?

              Wenn numerisch dann hilft vielleicht:

              Code:
              SELECT Tab1.id 
                FROM Tab1, Tab2
               WHERE Tab1.id=Tab2.id 
                 AND (Tab2.Code != 12)
                 AND (Tab2.Datum <= '2009-09-20') 
                 AND (Tab1.Info != 'PP')
              GROUP BY Tab1.id
              Wenn es sich im CHAR handelt, dann eventuell

              Code:
              SELECT Tab1.id 
                FROM Tab1, Tab2
               WHERE Tab1.id=Tab2.id 
                 AND (TRIM(Tab2.Code) != '12')
                 AND (Tab2.Datum <= '2009-09-20') 
                 AND (Tab1.Info != 'PP')
              GROUP BY Tab1.id
              Du kannst ja mal zusätzlich die "CREATE TABLE ..." mitliefern.

              Grüße
              Thomas

              Kommentar


              • #8
                Hi,
                beim Code handelt sich um int.
                Leider nicht das hatte ich auch gehabt. Funktioniert nicht.
                Ob eine Sache gelingt, erfährst du nicht, wenn du darüber nachdenkst, sondern wenn du es ausprobierst.

                Kommentar


                • #9
                  Ich würde auch mal bei den Datentypen ansetzen - ist das Datum auch wirklich ein DATE bzw. DATETIME ?
                  Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                  Kommentar


                  • #10
                    Hi,
                    alles ist richtig. Datum ist Date, Code ist int usw....
                    vielleicht können wir schritt für schritt durch gehen.
                    Weil sich alles irgendwie überschneidet. Die Antworten, die Fragen.

                    1. Wie kann ich alle IDs raus werfen die mindestens einmal code!='12' ist??
                    2. und dann was bleibt, soll dann überprüft werden das: Tab2.Datum <= '2009-09-20' und die Ids hier raus werfen ????

                    Danke.
                    Ob eine Sache gelingt, erfährst du nicht, wenn du darüber nachdenkst, sondern wenn du es ausprobierst.

                    Kommentar


                    • #11
                      Du kannst ja mal zusätzlich die "CREATE TABLE ..." mitliefern.
                      Dann kann ich mich nur wiederholen. Zeige mal die echte Tabellenstruktur und ein paar Echtdaten z. B. via phpMySqlAdmin oder so...

                      Grüße
                      Thomas

                      Kommentar

                      Lädt...
                      X