Angenommen, ich habe zwei Tabellen. Artikel und Kommentare.sql - links beitreten - zählen
wenn ich Spalten von Artikeln Tabelle auswählen, ich möchte auch die Anzahl der Kommentare zu dem Artikel in der gleichen SELECT-Anweisung wählen ... (nehme an das gemeinsame Feld zwischen diesen beiden Tabellen ist articleid)
wie tue ich das? Ich kann es schaffen, aber ich weiß nicht, ob mein Weg effizient wäre, also möchte ich den richtigen Weg lernen.
Nur Gruppe hinzufügen ist nicht immer die beste Sache zu tun. Ich sehe Leute schreiben Abfragen mit 100s (ok nicht 100, aber eine Menge) von Spalten in ihrer Gruppierung nach Klausel, weil sie nicht wissen, wie Aggregate richtig zu verwenden. Deshalb habe ich eine Lösung mit einer Unterabfrage gepostet. – JonH
@JonH: SQL Server (ähnlich wie andere DBs) erlaubt Ihnen nicht, Spalten aufzulisten/zurückzugeben, die nicht in Aggregatfunktionen eingeschlossen sind (sofern keine analytischen Funktionen verwendet werden), ohne sie innerhalb der GROUP BY-Klausel zu definieren. Wenn Sie die Klausel GROUP BY weglassen, erhalten Sie ** eine Fehlermeldung auf SQL Server basierend auf dem, was zur Verfügung gestellt wird. MySQL ist die einzige DB, die solche Funktionalität unterstützt, und es ist nicht Standard: http://dev.mysql.com/doc/refman/5.0/en/group-by-hidden-columns.html –
Ich weiß, dass mein Punkt Viele Leute verstehen nicht, wie Gruppenarbeit und Aggregate funktionieren. Ich habe Menschen in 100er Spalten gruppieren sehen, nur um zu bekommen, was sie für das richtige Ergebnis halten. – JonH