MySQLの変数を使用して自動化された結果セットを作成することができます。そのちょうどあなたがしたい日のスパンを表現するために、レコードのX番号を循環するために使用して
select
AllDaysYouWant.MyJoinDate,
count(U.User_ID) as NumberJoined
from
(select
@curDate := Date_Add(@curDate, interval 1 day) as MyJoinDate
from
(select @curDate := '2012-11-21') sqlvars,
Users
limit 18) AllDaysYouWant
LEFT JOIN Users U
on AllDaysYouWant.MyJoinDate = U.User_JoinDate
group by
AllDaysYouWant.MyJoinDate
内側のクエリは、私はちょうど、キーなしでusersテーブルに参加しています...これは30、100である可能性があり、何でも....テーブル(この場合はユーザー)と同様に、あなたが期待しているレコードの数が多くあります。
THENの場合、結果はusersテーブルに結合されますが、今回はユーザーのJOIN_DATEに基づいています。単純なCOUNT()はあなたが望むものを得るはずです。
「AllDaysYouWantは」
(select
@curDate := Date_Add(@curDate, interval 1 day) as MyJoinDate
from
(select @curDate := '2012-11-21') sqlvars,
Users
limit 18) AllDaysYouWant
これの内部最初の部分クエリに割り当てられた別名は基本的にはユーザーテーブルから...述べている(しかし、どんなことができる)で、私のデータの18行を与えます( 11月22日から12月6日までは14日しか必要としませんが、原理的にはほとんど何でも可能な18でした。ユーザーテーブルの上には(select @ curDate:= '2012-11-21')sqlvars。カッコ内にテーブルソースとしてラップされたクエリ内のselectステートメントには、エイリアスを指定する必要があります。これは単に使用する変数であるため、気にしないでくださいこれは11月21日に変数を開始し、Select @curDate: = Date_Add ... @curDateの現在の値を取得し、1日追加して(今は11月22日になります)、返された行「MyJoinDate」に格納されます。だから今この内側のクエリは、11月22日から18日分のデータのあなたのテーブルの日付を作成し、残りのクエリを参照するための別名 "AllDaysYouWant"を持っています。
私はあなたが
1日付範囲の生成を行うために必要なもの...
正常に動作し、エラーがない合格した66件のレコードを示していますどのように、私はそこにいると確信しています)、その後、そのテーブルとの結合を行います。 – ajon