Ein Query, 3 Counts und 3 Tabellen SQL

  • Moin Leute,
    wie ihr sicher schon vermutet geht es um diese erweiteren SQL Queries oder wie auch immer diese Dinger heißen^^:D Ich habe 3 Tabellen und möchte jede Tabelle counten und das alles in einem Query?
    Und wieso nicht in mehreren? Weils mich einfach interessiert, und weil die SQL Referenzen echt beschissen sind muss ich doch sagen...:eek:

    Ich habe bis jetzt immernur so normale Queries gemacht und probiere mich derzeit auch drin zu üben mehrere Tabellen auszulesen was mit Count aber irgendwie nicht will.

    Folgende Varianten habe ich schon ausprobiert:

    SQL
    SELECT COUNT( user.id )  AS usercount,COUNT( mail.id )  AS mailcount, COUNT( connection.id )  AS conncount
    FROM user, connection
    SQL
    SELECT user.COUNT(*),mail.COUNT(*),connection.COUNT(*) FROM user,connection,mail

    aber das will alles nicht so richtg :(
    Es währe nett wenn mir jemand dabei helfen würd ;)

  • Du bist doch schon so lange in Foren tätig, du solltest eigentlich wissen, dass "das will alles nicht so richtig" eine denkbar schlechte Problembeschreibung ist. ;)

    Das sollte funktionieren:

    PHP
    <?php
       $query = "SELECT 
                   COUNT( user.id ) AS usercount,
                   COUNT( mail.id )  AS mailcount, 
                   COUNT( connection.id )  AS conncount
                FROM 
                  user, mail, connection";
    ?>
  • EDIT:Ich habs durch zufall gefunden:

    SQL
    SELECT COUNT(  DISTINCT user.id )  AS usercount, COUNT(  DISTINCT mail.id )  AS mailcount, COUNT(  DISTINCT connection.id )  AS conncount
    FROM user, mail, connection

    So gehts ;)

    3 Mal editiert, zuletzt von crAzywuLf (26. August 2008 um 07:30)

  • Jupp du hast ja Recht :o
    Das SQL frisst den Query zwar, jedoch kommen 3 gleiche Ergebnisse raus und leider nicht die jeweiligen COUNTs der Tabellen. :?


    Ups, hätte ich nicht gedacht. Musste aber bei einem Test das gleiche feststellen. Und google liefert auch nichts, außer dass da nicht gehen soll.

  • PHP
    <?php
       $query = "SELECT 
                   COUNT( user.id ) AS usercount,
                   COUNT( mail.id )  AS mailcount, 
                   COUNT( connection.id )  AS conncount
                   (usercount + mailcount + conncount) AS countall
                FROM 
                  user, mail, connection";
    ?>

    Sollte glaub ich funktionieren (is aber ungetestet)

    Something big is coming. And there will be pirates and ninjas and unicorns...