AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL-Abfrage gesucht...
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Abfrage gesucht...

Ein Thema von Markus · begonnen am 9. Apr 2005 · letzter Beitrag vom 10. Apr 2005
Antwort Antwort
Markus
(Gast)

n/a Beiträge
 
#1

SQL-Abfrage gesucht...

  Alt 9. Apr 2005, 16:11
Datenbank: MySQL • Zugriff über: directSQL
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?
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: SQL-Abfrage gesucht...

  Alt 9. Apr 2005, 17:10
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
  Mit Zitat antworten Zitat
MarkusB

Registriert seit: 3. Apr 2004
Ort: Hamburg
105 Beiträge
 
#3

Re: SQL-Abfrage gesucht...

  Alt 10. Apr 2005, 08:49
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
  Mit Zitat antworten Zitat
Markus
(Gast)

n/a Beiträge
 
#4

Re: SQL-Abfrage gesucht...

  Alt 10. Apr 2005, 10:14
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
  Mit Zitat antworten Zitat
slemke76

Registriert seit: 29. Mär 2005
Ort: Quakenbrück
146 Beiträge
 
#5

Re: SQL-Abfrage gesucht...

  Alt 10. Apr 2005, 13:43
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
  Mit Zitat antworten Zitat
Markus
(Gast)

n/a Beiträge
 
#6

Re: SQL-Abfrage gesucht...

  Alt 10. Apr 2005, 16:33
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
  Mit Zitat antworten Zitat
slemke76

Registriert seit: 29. Mär 2005
Ort: Quakenbrück
146 Beiträge
 
#7

Re: SQL-Abfrage gesucht...

  Alt 10. Apr 2005, 16:54
Hi !

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

lg
  Mit Zitat antworten Zitat
Markus
(Gast)

n/a Beiträge
 
#8

Re: SQL-Abfrage gesucht...

  Alt 10. Apr 2005, 17:01
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...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:21 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