WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   [php/sql] count wert wird falsch ausgegeben (http://www.wcm.at/forum/showthread.php?t=218199)

mqs 22.06.2007 14:35

[php/sql] count wert wird falsch ausgegeben
 
Hallo!
habe eine mysql abfrage, bei der mir der count wert falsch ausgegeben wird. evtl habe ich hier einen denkfehler. meine abfrage sieht folgendermaßen aus:

PHP-Code:

SELECT entrys_data.*,entrys_klicks.fentrys_branchen.*, 
branchen_data.*, bezirke_data.*, COUNT(entrys_klicks.f) AS 
countklicks,entrys_data.id AS identrys_data.bildname AS bildname 
FROM entrys_data LEFT JOIN entrys_branchen ON 
entrys_branchen
.id_entry entrys_data.id LEFT JOIN branchen_data ON 
entrys_branchen
.id_branche branchen_data.id LEFT JOIN entrys_klicks 
ON entrys_klicks
.id_entry entrys_data.id LEFT JOIN bezirke_data ON 
bezirke_data
.plz entrys_data.plz GROUP BY entrys_data.id ORDER BY 
countklicks DESC LIMIT 0
12 

der countclicks wert ist die anzahl der einträge in der tabelle entry_klicks

wenn ich dies nun mit einer schleife ausgebe sollte er mir die einträge nach den klicks sotrieren.. funktioniert soweit bis auf das, dass einige einträge vom wert her verdoppelt bzw verdreifacht werden
ist hier das GROUP BY evtl falsch gesetzt oder stimmt was mit den verknüpfungen nicht? wenn ich zB bei GROUP BY schreibe "GROUP BY entrys_klicks.f, entrys_data.id" wert der wert sogar noch mehr vervielfacht und es werden weniger einträge ausgegeben.

mit dieser abfrage erhalte ich den richtigen wert:
PHP-Code:

$anzahl= @mysql_num_rows(@mysql_query("SELECT * FROM entrys_klicks WHERE f='$id'")); 


powerman 22.06.2007 21:10

hi,
@MQS ->DANKE-> sonst noch Fragen?

mqs 23.06.2007 00:12

aehm.. schlecht formuliert?
oder kanns nicht irgendwas sein was ich übersehenhabe? wahrscheinlich schon, aber in welche richtung...
es geht ja eigentlich nur um die count funktion

mqs 09.07.2007 08:36

bin draufgekommen, dass es mit dem group by zu tun hat, da ich eine table mit left join verknüpft habe die nicht mit der haupt id zu tun hat sondern nur eine nebenfunktion.. und dadurch wird mir der count wert vervielfacht... :(

wenn ich jetzt zB das "group by" nicht auf die haupt id, die ich benötige, setze, dann wird mir der count wert richtig ausgegeben, aber dann der eintrag 2x oder 3x nacheinander..

kann ich da sowas wie 2 group by's verwenden? oder sowas in der art?

Zeddicus 13.07.2007 08:11

ich kenn mich zwar nicht mit mysql aus aber lt. ANSI-SQL müsste group by über mehrere spalten möglich sein:

group by spalte1, spalte2, spalte3 ....

ich hoffe es ist ANSI-SQL ich kenns halt so aus oracle

lg zedd

Zeddicus 13.07.2007 08:12

ich kenn mich zwar nicht mit mysql aus aber lt. ANSI-SQL müsste group by über mehrere spalten möglich sein:

group by spalte1, spalte2, spalte3 ....

ich hoffe es ist ANSI-SQL ich kenns halt so aus oracle

lg zedd

//edit:
ups is irgendwie ein zweites mal hineingerutscht...

mqs 13.07.2007 21:42

ja, danke,.. hab ich leider schon probiert gehabt.. irgendwie fruchtet das nicht :(


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag