SQL-Abfrage, mehrere Werte aus einer Tabelle ausschließen

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

  • SQL-Abfrage, mehrere Werte aus einer Tabelle ausschließen

    Hallo Zusammen,

    ich stehe gerade mächtig auf dem Schlauch, doch bevor ich noch durchdrehe frage ich lieber euch nach Hilfe denn Ihr habt das bestimmt in einigen Sekunde gelöst.

    Aufgabe:

    Ich möchte mit einer SQL-Abfrage nur dann ein Result (Datensätze) bekommen wenn KEINE der vorher bestimmten option_ids in selber Tabelle vorhanden sind.

    Sprich: Nur ein Result wenn es keine Einträge in tabelle_a gibt mit der option_id = "1" UND option_id = "2", in diesem Beispiel soll also nur der Datensatz Nr. 4 zurückgeben werde da hier option_id = '4' UND KEIN Datensatz vorhanden ist MIT SELBER product_id wie bei option_id = '1' bzw ='2' . Datensatz Nr. 3 wird nicht zurückgegeben da selbe product_id wie ausgeschlossene Datensätze 1 und 2.

    Tabellenaufbau:
    Code:
    Tabelle: tabelle_a
    Felder: option_id, product_id
    Datensatz 1: option_id  = 1, product_id = 20
    Datensatz 2: option_id  = 2, product_id = 20
    Datensatz 3: option_id  = 3, product_id = 20
    Datensatz 4: option_id  = 4, product_id = 21
    Gescht wird nach product_id
    Wie ist jetzt das SQL-Statement anzulegen? Geht es irgendwie mit "NOT IN"?

    Ich hoffe ich habe mich einigermaßen deutlich ausgesprochen, ansonsten einfach kurz nachfragen.

    Vielen Dank für Eure Unterstützung.
    Grüße, Dieter.

  • #2
    haste schonmal was ausprobiert?

    hab auch net verstanden, was du wirklich willst

    Kommentar


    • #3
      Code:
      SELECT product_id, SUM(IF(option_id IN (1, 2), 1, 0)) anzahl
      FROM [i]<tabelle>[/i]
      GROUP BY product_id
      HAVING anzahl = 0
      liefert dir alle product_ids, wo als option_id weder 1 noch 2 vorkommt.

      Mit anzahl = 1 bekommst du alle product_ids, wo nicht option_id = 1 und option_id = 2 vorkommen
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar

      Lädt...
      X