0

SOに関する回答を探していましたが、問題は解決しませんでした。2 つのテーブルがprofilesありprofiles_visitors、最初の訪問者が格納されています。

過去 15 日間のユーザーの訪問者数を知りたいので、次のように記述しました。

SELECT COUNT(pv.id) AS `count`, DATE(FROM_UNIXTIME(pv.created_at)) AS `date`
FROM profiles p
LEFT JOIN profiles_visitors pv ON pv.profiles_id=p.id
WHERE p.users_id='50' AND pv.created_at >= (CURDATE() - INTERVAL 15 day)
GROUP BY DATE(FROM_UNIXTIME(pv.created_at))

クエリの結果:

+-------+-------------------+
| count | date              |
+-------+-------------------+
| 2     | 2012-10-26        |
+-------+-------------------+
| 3     | 2012-10-29        |
+-------+-------------------+

望ましい結果:

+-------+-------------------+
| count | date              |
+-------+-------------------+
| 0     | 2012-10-15        |
+-------+-------------------+
.......... 0s here ..........
+-------+-------------------+
| 0     | 2012-10-25        |
+-------+-------------------+
| 2     | 2012-10-26        |
+-------+-------------------+
| 0     | 2012-10-27        |
+-------+-------------------+
| 0     | 2012-10-28        |
+-------+-------------------+
| 3     | 2012-10-29        |
+-------+-------------------+
| 0     | 2012-10-30        |
+-------+-------------------+

前もって感謝します。

4

1 に答える 1

0

profiles次のように、行数ではなく行数を使用しますprofile_vistors(訪問がない場合、profile_vistors テーブルに行がないため)。

 SELECT COUNT(p.id) AS 'count'

また、必要に応じて、DATEDIFF関数を次のように使用することもできます。

    DATEDIFF(CURDATE(), pv.created_at) <=15
于 2012-10-30T12:48:55.767 に答える