Mein Schema verbunden Zählen, Abfrage- und problematische Ergebnisse hier zu sehen ist: http://sqlfiddle.com/#!17/55bc3/5/0Ausgabe Zeilen aus zwei Tabellen
ich ein Schema zum Speichern von Posts, Kommentare und Favoriten erstellt haben. (Ich habe mein Beispiel zur Demonstration vereinfacht). Ich versuche, eine Abfrage zu erstellen, um die Like/Favorite-Zählungen für jeden Beitrag zu aggregieren, um auf einer "Titelseite" angezeigt zu werden.
Um die Beziehungen zwischen Benutzern/Posts/Favoriten zu modellieren, habe ich mehrere Schnitttabellen verwendet. In der Abfrage verwende ich zwei LEFT JOIN
s, und dann COUNT
in verschiedenen Spalten in den Ergebnissen. Ich habe ein Problem festgestellt, bei dem die COUNT
, die ich als comment_count
speichere, favourite_count
überschreibt, wenn sie etwas über 0 zurückgibt, wodurch doppelte Werte für beide Spalten zurückgegeben werden.
ich denken ich den Mechanismus dahinter verstehen, ist, dass die GROUP
ing der Ergebnisse die resultierenden Reihen verursacht zusammen zerquetscht zu erhalten ein falsches Ergebnis zu erhalten. Ich habe mich gefragt, ob irgendjemand mir etwas über die Theorie dahinter sagen könnte, wie das heißt, und wie Sie richtig schreiben würden, um mit diesem Szenario umzugehen.
Vielen Dank für Ihre Lösung! Ich habe in diesem Beispiel Unterabfragen vermieden, weil ich davor gewarnt wurde, dass sie sich negativ auf die Leistung auswirken, aber dies scheint ziemlich gut zu sein. Ich denke, ich werde einfach mit Ihrer Lösung gehen. Danke für Ihre Antwort! Ich denke, ich sollte nicht vorzeitig optimieren! – ajxs