Logikproblem // dynamische Abfrage über 2 Tabellen

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

  • Logikproblem // dynamische Abfrage über 2 Tabellen

    Hallo zusammen.

    Ich hab ein etwas komplexeres SQL Problem das mich langsam an mir selbst zweifeln lässt.

    Ich versuch das ganze mal zu erklären.

    Es gibt eine Kundendatenbank und eine Profildatenbank. (Ein Profil ist beispielsweiße 'Fußballfan')

    Der einfachheit halber verkleinere ich die KundenDB mal zur Erklärung.

    unser beispielkunde hat zum beispiel

    knr = 1
    name = mustermann
    vorname = max
    firma = siemens

    er hat 2 einträge in der profildatenbank
    id = 1
    knr = 1
    merkmal = fußballfan

    id = 2
    knr = 1
    merkmal = motorsportfan

    soweit so gut und alles kein problem.


    Jetzt gibt es eine komplexe suchmaske in der der User die möglichkeit hat suchkriterien festzulegen.

    beispielsweise
    alle kunden mit firma "siemens" UND merkmal = "fußballfan"

    auch kein problem...

    die suche könnte aber (komplexer) auch lauten

    alle kunden die (name = mustermann UND firma = siemens) ODER (merkmal = fussballfan) ODER (merkmal = motorsportfan)


    hier ist das problem.

    wie formuliere ich eine sql abfrage die genau das abdeckt...
    denn das merkmal steht in einer anderen tabelle...


    vielleicht seh ich mittlerweile auch schon den wald vor lauter bäumen nicht mehr, aber ich verzweifel langsam.

    danke schon jetzt...

  • #2
    Verstehe das Problem nicht ganz. Dann nutzt du einen Join mit einer entsprechenden Restriktion. Vielleicht kannst du das Problem noch etwas genauer Eingrenzen.

    Kommentar


    • #3
      Falls jeder Kunde genau ein Merkmal hat, solltest du die Tabellen zusammenführen.

      Kommentar


      • #4
        Ansätze? Hier hat eigentlich keiner Lust Grundlagen zu vermitteln
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #5
          Also ich würd das so machen...:

          1. Querry:
          SELECT * FROM kundendatenbank WHERE user_id = $user

          2. Querry:
          SELECT merkmal FROM profildatenbank WHERE user_id = $user

          Bekommste ein Array mit allen Merkmalen für den User;
          Danach machste ein foreach und gibst einfach alle Merkmale aus, die der Suchende auch angegeben hat.
          WHILE (!$asleep) { $sheep++; }

          Kommentar


          • #6
            Wahrscheinlich ist das die beste Lösung...

            Kommentar

            Lädt...
            X