komplexe DB Query

T

TiMbO2k

Hi,

Code:
select poll_question.frage,
       poll_options.vote_option
       from poll_question
       left join poll_options ON (poll_question.id = poll_options.pollid)
       order by poll_question.id desc, poll_options.votes desc

Bei der oben genannten Query werden aus der DB die Fragen für eine Umfrage mit den entsprechenden Optionen ausgelesen. Funktioniert auch alles super aber ich will nun, das nur eine Komplette Umfrage selektiert wird und nicht alle. Sprich 1 Frage mit den entsprechenden Optionen. Momentan werden alle Fragen mit den entsprechenden Optionen selektiert.

MfG

TiMbO2k
 
versuche es mal damit

Code:
select...
order by poll_question.id desc, poll_options.votes desc limit 0, 1

so solltest du nur den ersten record erhalten

greetings para
 
Hi,

so geht es leider auch nicht.

Es wird halt nur die Frage und eine Option ausgegeben.

Ich will einfach nur die aktuellste Frage mit ALLEN dazugehörigen Optionen haben.

Ich könnte mit die Abfrage so vorstellen:

Die Abfrage selektiert alle Optionen bei denen die POLLID die MAX(ID) von den Fragen ist. Dazu wird noch die Frage per Join mit der Tabelle verknüpft.

Das müsste sicherlich irgendwie funktionieren. Ich habe jetzt min 2 Stunden rumprobiert aber ich bekomme es einfach nicht hin :(.
 
sorry, hatte deine frage falsch verstanden

damit sollte es nun klappen:

Code:
select poll_question.frage,
       poll_options.vote_option
       from poll_question
       left join poll_options ON (poll_question.id = poll_options.pollid)
       where poll_question.id = (select max(x.id) from poll_question x)
       order by poll_question.id desc, poll_options.votes desc

greetings para
 
Hi,

thx für deine Bemühungen.

Ich habe die Query ausprobiert aber so geht leider auch nicht :(.

Sind solche zusätzlichen Queries in einer Query nich erst ab MySQL 4 verfügbar ? Ich besitze nämlich nur MySQL 3.23.39.

MfG

TiMbO2k
 
hmm...

dann musst du das problem wohl oder übel in in zwei schritten bzw. mit zwei queries lösen..

im ersten query ermittelste du di max(poll_question.id) und füllst diese in eine variable ab.

im zweiten querey nimmst du wie gehabt deinen query und fügst folgendes where-statement ein:
Code:
where poll_question.id = deineVariable

so müsste es nun auch bei dir gehen.

greetings para
 
jup so habe ich es ja auch. Ich dachte nur, das ich evtl. diese beiden Queries zusammenfassen könnte.

MfG

TiMbO2k
 

Neue Beiträge

Zurück