Announcement

Collapse
No announcement yet.

Spalten mit gleicher ID anhand einer zweiten Spalte zusammenfassen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Spalten mit gleicher ID anhand einer zweiten Spalte zusammenfassen

    Folgendes Problem:

    Ich habe drei Tabellen: Eine Bilder-, eine Kategorie- und eine Tabelle die beide anhand der IDs verknüpft.

    Jeder Kategorie können mehrere Bilder zugeordnet werden und jedem Bild können mehrere Kategorien zugewiesen werden.

    Nun gibt es eine Spalte bei den Kategorien die jeweils true und false enthalten kann, diese dient für die Anzeige.

    Ich suche eine SQL dafür das nur die Bilder ausgegeben werden bei denen mind. eine Kategorie den Wert true enthält.

    --

    Die Tabellen habe ich mit JOINs verknüpft und mittels DISTINCT kann ich die Anzahl gleicher Bild-IDs bei verschiedenen Kategorie-IDs begrenzen, jetzt fehlt mir dazu aber noch die Bedingung "nur die wo es keine Kategorie gibt deren Anzeige auf false gesetzt ist". Wie müsste diese in der WHERE-Klausel aussehen?
    Zuletzt editiert von teado; 20.06.2010, 01:47.

  • #2
    Hallo,
    Originally posted by teado View Post
    ...das nur die Bilder ausgegeben werden bei denen mind. eine Kategorie den Wert true enthält.
    ...
    "nur die wo es keine Kategorie gibt deren Anzeige auf false gesetzt ist".
    Mindestens eine mit True bedeutet im Umkehrschluss nicht, dass es keine mit False gibt. Also was denn nun?

    Ansonsten lässt sich das in SQL fast exakt so formulieren "wo es keine Kategorie gibt deren ..." => "WHERE NOT EXISTS (SELECT ...)

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Ok, ein bisschen unglücklich sortiert ^^

      Also nochmal langsam:

      id ----- show
      1 ----- true
      1 ----- false
      1 ----- true
      2 ----- true
      2 ----- true
      3 ----- false

      So sieht die Tabelle aus und ich möchte jetzt nur das mir mittels einer SQL nur die Datensätze ausgegeben werden zu denen es keinen gibt der als show-Wert zu einer gleichen ID false enthält.

      Als 1 wird nicht ausgegeben da einer der Werte false enthält. 2 Wird ausgegeben da es nirgendwo einen false mit der id 2 gibt und die 3 wird wieder nicht ausgegeben weil sie false enthält.

      Comment


      • #4
        Dann ist doch das vorgeschlagene "WHERE NOT EXISTS (SELECT ...)
        von @Falk Prüfer genau das richtige.
        Bei SQL-Code bitte beachten: Formatierung von SQL in Beiträgen

        Comment

        Working...
        X