1

問題は私のクエリにあります。2 つのテーブルからデータを選択する必要があります。table1 にはカテゴリ ID であるフィールド カテゴリがあり、table2 にはカテゴリ ID であるフィールド ID があります。月ごとにデータを選択する必要があります。たとえば、2 月を選択した場合、選択した期間のそのテーブル内のすべてをカウントし、カテゴリ ID でグループ化します。たとえば、テーブル 1 で選択された月にはカテゴリ ID = 3 がなく、テーブル 2 から取得してそのカテゴリ値 = 0 にします。また、table1 の 3 月の期間が id=3 のカテゴリである場合、そのカテゴリ ID を持つすべての値をカウントします。

1 つの選択を行いましたが、正しくありません。

$query = sprintf("SELECT count(*) as counter, category, (select category from categories where id=leads.category) as categoryname, clientcode , language                   
                  FROM leads   
                  WHERE synced > %s and synced < %s
                  GROUP BY category, clientcode 
               UNION ALL
                  SELECT 0 as counter, id as category, category as categoryname, 0 as clientcode, language  FROM categories WHERE id NOT IN(SELECT category FROM leads)
                  GROUP BY category, clientcode ",$starttime, $endtime ); 

助けてくれてありがとう、私が必要なものを理解してくれることを願っています。

たくさんのテキスト...

私はこれを解決しました:

$query = sprintf("SELECT count(*) as counter, category, (select category from categories where id=leads.category) as categoryname, clientcode , language                   
                      FROM leads   
                      WHERE synced > %s and synced < %s
                      GROUP BY category, clientcode 
                   UNION ALL
                      SELECT 0 as counter, id as category, category as categoryname, 0 as clientcode, language  FROM categories WHERE id NOT IN(SELECT category FROM leads WHERE synced > %s and synced < %s)
                      GROUP BY category, clientcode ",$starttime, $endtime, $starttime, $endtime ); 
4

0 に答える 0