MYSQL 2 Tabellen abfrage mit COUNT

  • Themenstarter Themenstarter ByeBye 182971
  • Beginndatum Beginndatum
B

ByeBye 182971

Hi,

ich hab jetzt schon länger nach der Lösung gesucht aber einfach keine gefunden:
Hier mal die Daten:

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

SELECT ar.*, COUNT(*) as comments FROM articles AS ar, comments AS co WHERE co.article_id = ar.id

Ich verstehe nicht ganz was das GROUP BY soll und wo ich es einsetzte.

Was ich will:

Alle daten aus der Artikeltabelle und die Anzahl alle dazugehörigen Comments aus gleichnamiger Tabelle, die zu dem jeweiligen artikel gehören.
 
Lol ich verstehe wo das Problem war:

PHP:
		$query = $this->db->query('SELECT
									ar.*,
									COUNT(*) as comments
								   FROM
									articles AS ar, comments AS co
								   WHERE
									co.article_id = ar.id
								   GROUP BY
									co.article_id
								  ');

das GROUP BY musste hinter. warum das so ist weiß ich allesdings auch nicht^^
 
Hi ich habe doch noch eine Frage zu meinem Statement:

Code:
SELECT
	ca.title AS category,
	ar.*,
	DATE(ar.date) AS date,
	COUNT(*) AS comments
	FROM
		articles AS ar,
		categories AS ca,
		comments AS co
	WHERE
		ca.url_title = 'frameworks'
	AND
		ar.category_id = ca.id
	AND
		co.article_id = ar.id
	GROUP BY co.article_id
	ORDER BY
		date DESC;

Problem: Wenn ein Artikel keine Comments hat gibt COUNT anscheinend false zurück oder so und somit bekomme ich gar kein Ergebnis aus der Abfrage. Obwohl Artikel vorhanden sind.

Muss da etwa eine If-Afrage machen oder so? Weil 2 Queries wären doof.

Danke Admi für deine Antwort
 
Zurück