Zeek: MySQL-Abfrage?

Moin, moin!

Vielleicht könnte mir jemand bei einer MySQL-Abfrage helfen. Ich habe unsere Chattertreffen mit Bildern und Teilnehmern in den folgenden drei Tabellen:

1. Table Chattertreffen
-----------------------
ID (ID-Nr. des Treffens, auto increment, unique)
Ort (Ort des Treffens)
Datum (Timestamp, Datum des Treffens)

2. Table Bilder
---------------
ID (ID-Nr. des Bildes, auto increment, unique)
CT (ID-Nr. des Treffend, zu welchem das Bild gehört)
URL (URL des Bildes)

3. Table Personen_auf_Bildern
-----------------------------
ID (ID-Nr. des Eintrags, auto increment, unique)
Bild (ID-Nr. des Bildes)
Person (Name jeweils einer der Personen auf diesem Bild)

Es gibt also zu jedem Treffen (Table 1) jeweils mehrere Bilder (Table 2), auf jedem sind jeweils mehrere Personen zu sehen (Table 3)

Nun möchte ich eine Liste mit dem folgenden Daten bekommen:

  • Jedes CT
  • Anzahl der Bilder zu jedem CT
  • Anzahl der Teilnehmer zu jedem CT

Und das ganze am Besten in einer Abfrage. Wenn mir jemand helfen kann: Ich wäre äußerst dankbar! :o)

Gruß,
Zeek

  1. Oi,

    1. Table Chattertreffen

    ID
    Ort
    Datum

    1. Table Bilder

    ID
    CT
    URL

    1. Table Personen_auf_Bildern

    ID
    Bild
    Person

    • Jedes CT

    SELECT *
          FROM chattertreffen;

    Wo ist das Problem?

    • Anzahl der Bilder zu jedem CT

    SELECT ct.ID,ct.ORT,ct.DATUM,COUNT(bi.ID)
          FROM chattertreffen ct,bilder bi
          WHERE ct.id = bi.ct;

    • Anzahl der Teilnehmer zu jedem CT

    Entsprechend dem SELECT zu "Anzahl der Bilder zu jedem CT"

    Und das ganze am Besten in einer Abfrage.

    Das wird wohl nicht funktionieren. Falls diese Annahme korrekt ist, so könnte eine performancesteigernde Maßnahme (gegenüber dem Skriptloop durch die Ergebnismenge "Anzahl der Bilder zu jedem CT") in einer Denormalisierung liegen: Die Bildertabelle erhält eine Spalte ANZAHLBILDER, deren Werte bei entprechenden Änderungen in der Personen-auf-den-Bildern-Tabelle angepaßt werden. Dann kann der zweite SELECT diesen Wert mitliefern.

    HTH Robert

    1. hi,

      • Jedes CT
          SELECT *
              FROM chattertreffen;
        Wo ist das Problem?

      hier: http://www.dclp-faq.de/q/q-sql-select.html

      gruss,
      wahsaga

      1. Oi,

        SELECT *
              FROM chattertreffen;
        Wo ist das Problem?
        hier: http://www.dclp-faq.de/q/q-sql-select.html

        naja - in der Annahme, das alle drei Spalten der Tabelle chattertreffen zur weiteren Verarbeitung benötigt werden und das Tabellenkonstrukt zeitstabil sei, möge diese Form des Zugriffs hier gestattet sein. Zu Deiner Beruhigung: Im genannten Kontext wirst Du keinen * in irgendeinem _meiner_ produktiv eingesetzten SELECTs finden.

        Natürlich ist Dein Hinweis grundsätzlich angebracht, allerdings betrachte ich diesen speziellen Punkt als eine höhere Weihe des SQL aus dem Bereich langfristiger Softwarequalitätssicherung. Vorher gibt es wohl eine Reihe grundlegenderer Codierungsempfehlungen, die bei sehr häufig auftretende Problemen Abhilfe schüfen - etwa wie hier im Forum in sehr vielen SQL-Snippets nicht zu sehen: saubere, les- und wartbare Notation der SQL-Anweisungen oder Nichtverwendung von ANSI-SQL-Schlüsselbegriffen (eines meiner Lieblingsthemen: "Name" als Spaltenbezeichner).

        HTH Robert

        P.S. Hatte heute Mittag schon mal versucht, zu antworten; beim Klick auf "Nachricht absenden" ist das Forum abgenippelt. War ich das schuld?

        1. Hi Robert

          P.S. Hatte heute Mittag schon mal versucht, zu antworten; beim Klick auf "Nachricht absenden" ist das Forum abgenippelt. War ich das schuld?

          Nein, warst du nicht, und selbst wenn, du darfst gar nicht in der Lage sein, das Forum zum Absturz zu bringen. Wenn du es also warst, bist du unschuldig weil die Entwickler verhindern müssen, dass du das überhaupt kannst.

          Ausserdem war der ganze Rechner weg, was genau die Absturzursache war ist unbekannt.

          Gruss Daniela

          --
          Nein, wir frieren unsere Hühner nicht auf Gletschern fest.
          Selfcode: sh:) fo:) ch:) rl:) br:> n4:| ie:{ mo:) va:) de:] zu:} fl:( ss:) ls:&