mh1001
Lt. Commander
- Registriert
- Nov. 2003
- Beiträge
- 2.039
Hallo,
bevor ich mit dem Problem anfange hier erst einmal der Aufbau der Tabellen in der Datenbank:
Auf das nötigste für die Problemlösung beschränkt liegen also 3 Tabellen mit folgenden entscheidenden Feldern vor:
Nun zur eigentlichen Frage:
Ich möchte mit einer Abfrage alle verschiedenen Optionen einer Umfrage abfragen und gleichzeitig die Anzahl der Stimmen der jeweiligen Auswahloption abfragen.
Ich habe schon einiges mit verschiedenen JOIN-Abfragen versucht, doch ist es mir bis jetzt noch nicht gelungen eine Anständige Lösung zu finden. Wie stelle ich dies am besten an?
Bissher sieht es folgendermaßen aus:
Diese Abfrage hat jedoch den Nachteil, dass nur Umfrageoptionen ausgegeben werden, bei denen mindestens eine Stimme - sprich Datensatz in der Tabelle rbg_umfragen_stimmen mit der jeweiligen Auswahloption - vorhanden ist. Alle Versuche diesen Fehler zu beheben liefen jedoch auf einen SQL-Error heinaus.
Besten Dank im schon einmal an alle die sich die Mühe gemacht haben dies durchzulesen.
mh1001
bevor ich mit dem Problem anfange hier erst einmal der Aufbau der Tabellen in der Datenbank:
Code:
CREATE TABLE [color=SeaGreen]rbg_umfragen[/color] (
id INT(11) NOT NULL auto_increment,
titel VARCHAR(255) NOT NULL,
beschreibung TEXT NOT NULL,
aktivitaet TINYINT(1) NOT NULL,
ersteller INT(11) NOT NULL,
status TINYINT(1) NOT NULL,
zeit DATETIME,
PRIMARY KEY (id)
);
CREATE TABLE [color=SeaGreen]rbg_umfragen_optionen[/color] (
id INT(11) NOT NULL auto_increment,
umfrage INT(11) NOT NULL,
auswahloption TINYINT(1) NOT NULL,
titel VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE [color=SeaGreen]rbg_umfragen_stimmen[/color] (
id INT(11) NOT NULL auto_increment,
umfrage INT(11) NOT NULL,
auswahloption INT(11) NOT NULL,
ip VARCHAR(15) NOT NULL,
zeit TIMESTAMP(14),
PRIMARY KEY (id)
);
Code:
[color=SeaGreen]
rbg_umfragen
[color=Blue]id | titel | beschreibung | status
[/color][/color][color=SeaGreen]rbg_umfragen_optionen
[color=Blue]id | umfrage | [/color][/color][color=Blue]auswahloption | titel
[/color][color=Blue][color=Black]Das Feld [color=Blue]umfrage[/color] enthält hier jeweils die entsprechende ID der Umfrage.[/color][/color]
[color=Blue]
[/color][color=SeaGreen]rbg_umfragen_stimmen
[/color][color=SeaGreen][color=Blue]id | umfrage | [/color][/color][color=Blue]auswahloption
[color=Black]Das Feld [color=Blue]umfrage[/color] enthält hier jeweils die entsprechende ID der Umfrage.
Das Feld [color=Blue]auswahloption[/color] enthält jeweils den Wert des Feldes [color=Blue]auswahlopion[/color] der entsprecheden Option aus der Tabelle [color=SeaGreen]rbg_umfragen_optionen[/color].
[/color][/color]
Ich möchte mit einer Abfrage alle verschiedenen Optionen einer Umfrage abfragen und gleichzeitig die Anzahl der Stimmen der jeweiligen Auswahloption abfragen.
Ich habe schon einiges mit verschiedenen JOIN-Abfragen versucht, doch ist es mir bis jetzt noch nicht gelungen eine Anständige Lösung zu finden. Wie stelle ich dies am besten an?
Bissher sieht es folgendermaßen aus:
Code:
SELECT COUNT([color=SeaGreen]rbg_umfragen_stimmen[/color].[color=Blue]id[/color]) AS stimmen, [color=SeaGreen]rbg_umfragen_optionen[/color].[color=Blue]titel[/color] FROM [color=SeaGreen]rbg_umfragen_optionen[/color], [color=SeaGreen]rbg_umfragen_stimmen[/color] WHERE [color=SeaGreen]rbg_umfragen_optionen[/color].[color=Blue]id[/color] = [color=SeaGreen]rbg_umfragen_stimmen[/color].[color=Blue]auswahloption[/color] AND [color=SeaGreen]rbg_umfragen_stimmen[/color].[color=Blue]umfrage[/color] = '$umfrage' AND [color=SeaGreen]rbg_umfragen_optionen[/color].[color=Blue]umfrage[/color] = '[color=Black]$umfrage[/color]' GROUP BY [color=SeaGreen]rbg_umfragen_optionen[/color].[color=Blue]id[/color]
Besten Dank im schon einmal an alle die sich die Mühe gemacht haben dies durchzulesen.
mh1001
Zuletzt bearbeitet: