Announcement

Collapse
No announcement yet.

Mehrere Datensätze als Ergebnis trotz Count

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mehrere Datensätze als Ergebnis trotz Count

    Moin Leute

    Ich will in einem Quere mit zwei left Joins zwei Counts ausführen, ohne dass diese Daten auch im Endresultat gruppiert werden. Das heisst ich will die Anzahl Daten, die auf einen Teil des Querys zutreffen (etwa die Anzahl Datensätze, die in der ersten Tabelle betroffen sind und dasselbe für die dritte Tabelle). Der Query sieht folgendermassen aus:

    Code:
    SELECT COUNT(bidid) as bidtotal, bidid, biduserid, bidprice, bidtime, userid, username, ROUND(SUM(repstar)/COUNT(repstar),1) as reputation FROM ks_1_bids
    LEFT JOIN ks_1_users ON userid = biduserid
    LEFT JOIN ks_1_userreps ON biduserid = repgetuserid
    WHERE itemid = '1' ORDER BY bidprice, bidtime DESC LIMIT 0, 20
    In der Tabelle ks_1_bids hat es 2 Datensätze, die auf die Bedingung userid = biduserid zutrifft, in der Tabelle ks_1_userreps ebenfalls 2. Somit sollte mir COUNT(bidid) und COUNT(repstar) als ergebnis je 2 liefern. COUNT(bidid) liefert mir allerdings 3. Und als Ergebnis erhalte ich folgendes:

    bidtotal bidid biduserid bidprice bidtime userid username reputation
    3 1 1 5 1233207544 1 testuser 3.0

    Erhalten will ich aber:

    bidtotal bidid biduserid bidprice bidtime userid username reputation
    2 1 1 5 1233207544 1 testuser 3.0
    2 2 2 7 1233577544 1 user2 0.0

    Versteht ihr, worauf ich hinaus will? Und kennt jemand eine Lösung mit einem oder wenigen Querys zu diesem Problem?

  • #2
    Hallo,

    du solltest in deiner Abfrage einfach eine saubere GROUP BY Klausel notieren und nicht auf den MySQL-Murks vertrauen.

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment

    Working...
    X