SQL: Nur Ergebnisse, die in allen Zeilen vorkommen

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

  • SQL: Nur Ergebnisse, die in allen Zeilen vorkommen

    Hallo,

    sorry, für den blöden Betreff, aber mir ist nichts eingefallen.

    Ich habe ein kleines Problem mit einer Suchfunktion, das ich nicht recht gelöst bekomme.

    Ich habe folgende Tabelle:
    suche_artikel:
    -----------------------
    : id : wortid : artid :
    -----------------------
    : 0 : 10 : 1 :
    : 1 : 20 : 1 :
    : 2 : 10 : 2 :
    -----------------------

    Derzeit lese ich die Tabelle, wenn ich nach Wort mit de ID 10 und 20 suche mit dem Befehl:
    SELECT * from suche_artikel WHERE wortid IN ('10', '20') GROUP BY artid;
    aus.
    Hier kommt natürlich auch Artikel mit ID 10 dazu.

    Nun hätte ich aber gerne, dass ich, wenn ich nach Wortid 10 und 20 suche, nur Artikel mit der ID 1 heraus kommt, also Artikel 2 (da hier Wort 20 nicht da ist), nicht in das Ergebnis mit rein kommt.

    Hat jemand eine Idee ?
    Danke
    Marco

  • #2
    Nun hätte ich aber gerne, dass ich, wenn ich nach Wortid 10 und 20 suche, nur Artikel mit der ID 1 heraus kommt, also Artikel 2 (da hier Wort 20 nicht da ist), nicht in das Ergebnis mit rein kommt.
    Verstehe ich nicht: du suchst nach 10 und 20, willst aber 20 nicht haben?!?
    "I don't want to belong to any club that would accept me as a member."

    Groucho Marx

    Kommentar


    • #3
      Da musst du die Tabelle mal wieder mit sich selbst JOINEN und prüfen, ob der Artikel sowohl Wort 10 als auch 20 enthält. (Diese Bedingung hättest du übrigens auch einfach in klarem Deutsch dahin schreiben können. )

      Wenn du jetzt aber 3,4,5 Bedingungen hast, dann wirds kritisch...

      Kommentar


      • #4
        Original geschrieben von TobiaZ
        Wenn du jetzt aber 3,4,5 Bedingungen hast, dann wirds kritisch...
        Ja ist mein Problem
        Die Leute suchen eben nach mehreren Worten und ich möchte nur die Artikel haben, in denen auch alle gesuchten Worte enthalten sind.

        Ich bin evtl. am überlegen, jedes Wort auszuwerten und dann zu sehen, welches IDs in allen Ergebnissen sind, mal sehen, wie aufwendig das ist.

        Kommentar

        Lädt...
        X