問題は私のクエリにあります。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 );