kostenloser Webspace werbefrei: lima-city


Mysql-Abfrage formelieren

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    cg-tv

    cg-tv hat kostenlosen Webspace.

    Also ich weis nicht wie ich eine Mysql Abfrage formeliere die das macht:

    Tabelle 1: Kategorie
    Tabelle 1, Spalte 1: ID (autoincrem) (int)
    Tabelle 1, Spalte 2: KategorieName (char)

    Tabelle 2: Videos
    Tabelle 2, Spalte 1: ID (autoincrem) (int)
    Tabelle 2, Spalte 2: KategorieID (int)
    Tabelle 2, Spalte 3: Videolink (char)

    Nun will ich mit einer Abfrage schaffen das alle KategorieName und dahinter die anzahl Videos aus der Kategorie angezeigt werden. Es gild Kategorie.ID = Videos.KategorieID

    Also, das schaff ich schon, aber da fehlt noch die anzahl von Videos bei jeder Kategorie:
    SELET Kategorie.KategorieName FROM Kategorie, Videos WHERE Kategorie.ID = Videos.KategorieID


    Wer kann mir helfen? Wenn was nicht klar ist einfach schreiben, dann erkläre ich es nochmal,

    cg-tv
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. also normalerweise macht man sowas über INNER JOIN ....egal ist jetzt aber nicht so wichtig ...also so wie ich das verstanden habe brauchst dann jetzt ein Subselect das ein COUNT() macht wo die Kategorie jeweils dieselbe ID hat ....

    ...wuah...ich bekomm das gerade nicht richtig zusammen ...ich melde mich später nochmal wenn ichs raus hab =/

    JOIN:
    SELET k.KategorieName, COUNT(k.ID = v.KategorieID) FROM Kategorie k
    INNER JOIN
    Videos v
    ON
     k.ID = v.KategorieID


    könnte sein das es auch soo geht, bezweifel es aber eher =/

    Beitrag zuletzt geändert: 25.4.2009 11:49:25 von myhead
  4. Autor dieses Themas

    cg-tv

    cg-tv hat kostenlosen Webspace.

    Ne dein Vorschlag geht leider nicht. Mit COUNT hab ich auch schon ein weng rumprobiert.
    Aber danke für die info von INNER JOIN, guck ich mir mal an.
  5. Könnte man das nicht so machen (Weiß jetzt nicht ob count mit group by geht...):
    SELECT k.KategorieName, c.Anzahl
    FROM Kategorie k
    LEFT OUTER JOIN
    (SELECT KategorieID, Count(*) as Anzahl
    FROM Videos
    GROUP BY KategorieID) c
    ON
    k.ID = c.KategorieID


    Der Left Outer ist hier nur, da ich denke, dass nicht in allen Kategorien zwangsweise Videos sind.

    Beitrag zuletzt geändert: 25.4.2009 12:18:05 von nikic
  6. Autor dieses Themas

    cg-tv

    cg-tv hat kostenlosen Webspace.

    Super, funktioniert einwandfrei, danke.
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!