Steve: SELECT und COUNT aus verschiedenen tabellen in einer query

Hallo,

kann mir da einer weiterhelfen:

ich möchte einmal aus einer tabelle einen wert per COUNT erfassen, und aus einer anderen Tabelle möchte ich Titel erfasen. beide haben die gleichen WHERE werte.
in 2 abfragen sähe das so aus:

$result=mysql_query("SELECT COUNT(id) AS comments FROM comments WHERE cat='".$cat."' AND ucat='".$ucat."'");
$row=mysql_fetch_array($result);
$comments=$row["comments"];

$result=mysql_query("SELECT title FROM title WHERE cat='".$cat."' AND ucat='".$ucat."'");
$row=mysql_fetch_array($result);
$title=$row["title"];

kann ich das auch mit einerabfrage machen, habe da ein wenig experimentiert, klappt aber nicht

steve

  1. SELECT c.COUNT(id) AS comments, t.title

    FROM comments c inner join title t

    ON c.cat = t.cat AND c.ucat = t.ucat

    WHERE cat='".$cat."' AND ucat='".$ucat."'");

    1. Hallo,

      SELECT c.COUNT(id) AS comments, t.title

      ^Welches DBMS kann das denn? Ich würde COUNT(c.id) schreiben.

      FROM comments c inner join title t

      ON c.cat = t.cat AND c.ucat = t.ucat

      WHERE cat='".$cat."' AND ucat='".$ucat."'");

      ERROR 1140: Mixing of GROUP columns (MIN(),MAX(),COUNT()...)
      with no GROUP columns is illegal if there is no GROUP BY clause.

      Mal in die Handbücher schauen?
      http://www.mysql.com/doc/en/Counting_rows.html

      viele Grüße

      Axel

  2. yo,

    kann ich das auch mit einerabfrage machen, habe da ein wenig experimentiert, klappt aber nicht

    syntaktisch geht das schon, aber von der bedeutung sollte kein vernüftiges ergebnis rauskommen. nur weil zwei statements die gleiche where klausel haben, macht es deswegen noch lange kein sinn, sie zusammenzuführen, schon gar nicht, wenn es sich um zwei unterschiedliche tabellen handelt.

    Ilja