Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL-Abfrage gesucht... (https://www.delphipraxis.net/43845-sql-abfrage-gesucht.html)

Markus 9. Apr 2005 15:11

Datenbank: MySQL • Zugriff über: directSQL

SQL-Abfrage gesucht...
 
Hi,

ich habe folgende Tabellen:

Tabelle "Benutzer":
Code:
id     |name
Tabelle "Fragen":
Code:
id     |frage
Tabelle "Abstimmung":
Code:
frage_id |user_id
So, in der Tabelle "Abstimmung" steht nun von verschiedenen Benutzern die Wahl. Nun möchte ich ausgeben lassen, wieviele auf Frage 1 als Antwort Benutzer 1 angegeben haben (als Beispiel), das ganze in einer Rangliste.

Es geht dabei um ne Umfrage in unserer Abiturzeitung, es sind Fragen wie "Wer wird später mal Rockstar?", und jeder kann da abstimmen, als Anworten kommen alle der Tabelle Benutzer in Frage. Ich möchte daher folgendes ausgeben:

Frage: Wer wird später mal Rockstar?
Otto Mustermann - 10 Stimmen
Hans Müller - 8 Stimmen
Erika Musterfrau 5 Stimmen

Wie muss ich das Query nun formulieren?

Jelly 9. Apr 2005 16:10

Re: SQL-Abfrage gesucht...
 
SQL-Code:
select b.Name, count(a.id) as Stimmen
from benutzer b, fragen f, a.abstimmungen
where a.user_id=b.id and a.frage_id=f.id and f.id = 1
Damit kriegst du alle Abstimmungen auf die Frage mit der ID=1

MarkusB 10. Apr 2005 07:49

Re: SQL-Abfrage gesucht...
 
Moin Markus!

Versuch folgendes:

SQL-Code:
select fragen.frage, benutzer.name, count(*)
from abstimmung, fragen, benutzer
where fragen.id  = abstimmung.frage_id
  and benutzer.id = abstimmung.user_id
group by frage, name, frage_id, user_id
order by frage, name, count(*) desc
Viele Grüße
Markus
:gruebel:

Markus 10. Apr 2005 09:14

Re: SQL-Abfrage gesucht...
 
Hab beide versucht, gingen erstmal nicht auf anhieb...

Aber ihr habt mir die entpsrechenden Hinweise gegeben, hab mit das Query dann aus beiden zusammengebaut und jetzt gehts...

Vielen Dank für die Hilfe :)

slemke76 10. Apr 2005 12:43

Re: SQL-Abfrage gesucht...
 
Hi !

das ganze wäre erheblich einfacher (und in der Auswertung auch schneller), wenn du in der Tabelle Abstimmung ein weiteres Feld "anzahl" einfügst, was du einfach jedesmal mit
update Abstimmung set anzahl=anzahl+1 where frage_id=1 and user_id=1
erhöhst....

lg

Markus 10. Apr 2005 15:33

Re: SQL-Abfrage gesucht...
 
Hmm, stimmt, das wäre besser gewesen, aber es haben inzwischen schon einige Abgestimmt, daher lass ichs so. Mit dem Query klappt es sowie auch...

Aber vielen Dank für den Tipp, das nächste Mal werd ichs so machen :-)

slemke76 10. Apr 2005 15:54

Re: SQL-Abfrage gesucht...
 
Hi !

Dann ist es doch nochmal ne schöne Sache eine Kovertierungs-Routine zu schreiben ;-)

lg

Markus 10. Apr 2005 16:01

Re: SQL-Abfrage gesucht...
 
Naja, es sind nur ein paar Fragen und die Abstimmung läuft noch ne Woche oder so, ich glaube daher rentiert sich das dafür nicht mehr... :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz