MySQL-Abfrage?
Zeek
- datenbank
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:
Und das ganze am Besten in einer Abfrage. Wenn mir jemand helfen kann: Ich wäre äußerst dankbar! :o)
Gruß,
Zeek
Oi,
- Table Chattertreffen
ID
Ort
Datum
- Table Bilder
ID
CT
URL
- 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
hi,
- Jedes CT
SELECT *
FROM chattertreffen;
Wo ist das Problem?
hier: http://www.dclp-faq.de/q/q-sql-select.html
gruss,
wahsaga
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?
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