Hallo zusammen,
ich komme mit meiner aktuellen Abfrage leider nicht weiter. Zu IDs (post_id) werden mehrmals Werte im Bereich 1-5 zugeteilt (rating_id). Folgendes will ich erreichen: Ich würde gerne die IDs auslesen, die öfters die Werte 1,2,3 zugeteilt bekommen haben als die Werte 4 und 5. Aktuell sieht meine Query wie folgt aus:
Das Problem ist nun, dass beide Selects keine ID/Werte ausgeben, sofern die ID entweder nie 1,2,3 oder 4,5 zugewiesen bekommt. Bei der äußeren Select ist das eher kein Problem, denn wenn in der äußeren nichts gefunden wird, können außen kaum mehr Einträge als innen vorhanden sein Aber wenn außen z.B. 6 Einträge, innen 0 gefunden werden, wird diese ID nicht ausgegeben, denn in der inneren Select-Anweisung wurde ja nichts gefunden. Wie kann ich es hinbekommen, dass da irgendwie noch ne 0 bei raus kommt?
ich komme mit meiner aktuellen Abfrage leider nicht weiter. Zu IDs (post_id) werden mehrmals Werte im Bereich 1-5 zugeteilt (rating_id). Folgendes will ich erreichen: Ich würde gerne die IDs auslesen, die öfters die Werte 1,2,3 zugeteilt bekommen haben als die Werte 4 und 5. Aktuell sieht meine Query wie folgt aus:
Code:
select post_id as test, count(rating_id) as test2
from phpbb_post_ratings
where rating_id = 1 or rating_id = 2 or rating_id = 3
group by test
having count(rating_id) > (
select count(rating_id)
from phpbb_post_ratings
where (rating_id = 4 or rating_id = 5) and test = post_id
group by post_id
)
Das Problem ist nun, dass beide Selects keine ID/Werte ausgeben, sofern die ID entweder nie 1,2,3 oder 4,5 zugewiesen bekommt. Bei der äußeren Select ist das eher kein Problem, denn wenn in der äußeren nichts gefunden wird, können außen kaum mehr Einträge als innen vorhanden sein Aber wenn außen z.B. 6 Einträge, innen 0 gefunden werden, wird diese ID nicht ausgegeben, denn in der inneren Select-Anweisung wurde ja nichts gefunden. Wie kann ich es hinbekommen, dass da irgendwie noch ne 0 bei raus kommt?