所以我试图运行一个查询,在这种情况下,没有预约的客户是 X 时间(例如 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 = ...;
涉及两个表,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 中),但不包括在接下来的两周内预约的客户。