このサイトでの最初の質問は簡単です。
GROUP BY
2 つのテーブルからの 2 つのパラメーターでSQL を使用することは可能ですか?
SELECT
DISTINCT COUNT(a.id),
b.id
FROM
table a
LEFT JOIN table b
GROUP BY a.id, b.id
完全なリクエストを追加します
SELECT DISTINCT e.PkID, e.LocID, e.LocationName, l.Name, e.LocationCity, l.City, e.Title, l.Descript, e.Description, e.LocID, e.LocationName, e.StartDate, e.StartTime, e.EndTime, e.TBD, c.CategoryName, Count(e.PkID), ec.CategoryID, l.PkID
FROM events e
LEFT JOIN eventcategories ec ON (ec.EventID = e.PkID)
LEFT JOIN categories c ON (ec.CategoryID = c.PkID)
LEFT JOIN locations l ON (e.LocID = l.PkID)
WHERE DATE(StartDate) >= DATE(CURDATE()) AND l.IsActive = 1
GROUP BY " . $Group . "
ORDER BY " . $Order . "
;
$Group = $Order = 'l.Name';
複数の l.Name を表示し、それぞれについて、開催されたイベントの数をカウントします (e.PKiD)
各イベントには 1 つ以上のカテゴリがあります。カテゴリが 1 つしかない場合は正しいカウントですが、たとえば、1 つの場所に 3 つのカテゴリを持つ 1 つのイベントがある場合、1 (イベント) ではなく 3 とカウントされます。