[MySQL 4.1] reihenfolge in tabelle beachten

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

  • [MySQL 4.1] reihenfolge in tabelle beachten

    'n abend,

    hartes abfrage-problem:
    eine tabelle mit einer id-spalte, inhalt und autoincrement. es sollen alle id's gesucht werden, die den inhalt A und C haben UND jetzt wirds spannend: A muss vor C in der tabelle stehen.

    teillösung:
    SELECT id FROM tabelle WHERE inhalt IN ("A","C")
    (-> würde id 1 und id 3 ausgeben)
    es fehlt die reihenfolge A->C

    id|inhalt|auto_id
    1|A|1
    1|B|2
    1|C|3
    2|B|4
    2|A|5
    3|C|6
    3|A|7

    -> soll id 1 ergeben (NICHT id 3, weil da C vor A ist)

    ich hoffe es hat jemend eine idee...
    norman

  • #2
    mache dir doch ne spalte 'sort' mit numerischen werten in die tabelle und sortiere danach.
    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


    • #3
      hi, ich verstehe nicht ganz was du meinst mit der sort spalte. kannst du das vielleicht etwas verdeutlichen? (der inhalt der spalte "inhalt" hat keine natürliche ordnung wie a,b,c oder 1,2,3)

      gruß
      norman

      Kommentar


      • #4
        Original geschrieben von norman79
        [...] der inhalt der spalte "inhalt" hat keine natürliche ordnung [...]
        aber du sagst, dass es doch in einer reihenfolge sein soll. oder bin ich jetzt total behemmert?
        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


        • #5
          Erklär und doch mal mal, was die Tabelle genau beinhaltet. Vielleicht lässt sich das durch eine andere Modellierung ganz simpel lösen. Ansonsten wirst Du Probleme bekommen, da es keine Reihenfolge der Tupel einer Tabelle gibt.
          Websitekritik | Für Anfänger

          Kommentar


          • #6
            moin!

            ok, neuer tag, neues glück. ich versuche das problem nochmal zu erklären. es sollen alle "ids" gefunden werden, die den "inhalt" A und C beinhalten, in der reihenfolge A -> C (bei "id" 1 ist das so), aber nicht die reihenfolge C -> A (bei "id" 3 ist das so). oder anders: wenn die auto_id von A kleiner ist als die von C dann matcht die abfrage. (es soll allerdings jede beliebige reihenfolge abgefragt werden können.)
            folgende tabelle:

            id|inhalt|auto_id
            1|A|1
            1|B|2
            1|C|3

            2|B|4
            2|A|5

            3|C|6
            3|A|7

            gewünschtes ergebnis: "id" 1
            ich hoffe das war etwas verständlicher.

            teillösung:
            SELECT id FROM tabelle WHERE inhalt IN("A","C") GROUP BY id HAVING COUNT(id) >= 2
            jetzt muss noch die reihenfolge A->C beachtet werden...

            gruß
            norman
            Zuletzt geändert von norman79; 04.01.2004, 11:08.

            Kommentar


            • #7
              lösung

              mit self-joins ist das problem zu lösen...

              kennt jemend ne gute doku dazu? (nicht www.mysql.de!!)

              sonst noch nen schönen sonntag...

              Kommentar

              Lädt...
              X