私は3つのテーブルを含むデータベースで作業しています:
- 企業一覧
- 彼らが販売する製品の表
- 彼らが各日付に提供した価格の表
特定の日付に特定の製品タイプの最低価格を提供している会社のリストを生成するために、php でこのようなクエリを実行しています。
SELECT
a.name AS company,
c.id,
MIN(c.price) AS apy
FROM `companies` a
JOIN `company_products` b ON b.company_id = a.id
JOIN `product_prices` c ON c.product_id = b.id
WHERE
b.type = "%s"
AND c.date = "%s"
GROUP BY a.id
ORDER BY c.price ASC
LIMIT %d, %d
これで必要なデータが得られますが、PHP でページャーを実装するには、その日にその製品を提供している企業の総数を知る必要があります。LIMIT は、最初の数個しか表示されないことを意味します...
SELECT 句を SELECT COUNT(a.id) または SELECT COUNT(DISTINCT(a.id)) に変更しようとしましたが、どちらも私が望むものを与えてくれないようです。カウントクエリで GROUP BY と ORDER BY を削除しようとしましたが、それもうまくいきませんでした。何か案は?