したがって、私はクエリを実行しようとしています。この場合、予約がないクライアントはX時間(たとえば2週間)です。つまり、「2週間以内に予約が取れていないクライアントのリストを表示する」ということです。私は次のようなことをしてphpでこれを解決しようとしています:
$date = new DateTime;
$ago = new DateInterval('P2W');
$target = $date->sub($ago);
//query to select clients that aren't scheduled after the $target date
$clients = ...;
関連する2つのテーブル、appt_tblとclients_tbl。appt_tblは、各予定レコードのclient_idを格納します。
したがって、基本的に必要なのは、各クライアントの「最大」予定を選択し、それが$ targetの日付未満の場合は、クエリ結果に含めることです。さまざまな種類のクエリ、サブクエリを使用したクエリを試しましたが、このクエリを正しく取得することにつまずきました。
私の現在の試みは次のようになります。
SELECT *
FROM clients_tbl
INNER JOIN
(
SELECT client_id
FROM appt_tbl
WHERE MAX(appt_date_time) < '2012-07-22'
GROUP BY client_id
) appts ON appts.client_id = clients_tbl.client_id;
これには、スケジュールされたことがないクライアント(IEはappt_tblに表示されません)も含まれますが、今後2週間以内に予約されたクライアントは含まれません。