我尝试了越来越多的方法来显示未访问报告列表,但我失败了。那么,该页面必须显示用户选择的日期选择器未访问的公司列表。 详细信息:我有一个表调用
- 客户表:ClientId、名称、分支
- 访问表:visitID、日期、desc、ClientID_fk
- 用户:ID、用户名、区域
现在,每次用户插入新的访问记录时,都会有一个插入的日期、描述,但主键和外键会自动加载。 注意: 客户分支 = 用户区域
我想要的只是检索从特定日期起未访问过的客户名称列表。数据不得重复两次。所以我使用 Distinct 例如:输出必须是:Chris 2014-02-01 尚未访问。
这是我的非访问 SQL 查询代码:
SELECT DISTINCT
cl.Name
FROM
Visits_table vt
LEFT JOIN
Client_table cl ON (cl.Client_Id = vt.client_fk)
STRAIGHT_JOIN
user u ON (u.area = vt.Branch)
WHERE
cl.Branch = vt.Branch
AND u.username = 'Anthony'
AND vt.Start_Date <= '2014-10-12'
ORDER BY cl.Name ASC ;
最佳答案
我认为您想要做的事情如下:
SELECT
cl.Name,
max(vt.Start_Date) LastVisit
FROM
Client_table cl
LEFT JOIN
Visits_table vt on (cl.Client_Id = vt.client_fk)
JOIN
user u on (u.area = vt.Branch)
WHERE
u.username = 'Anthony'
GROUP BY
cl.Name
HAVING
LastVisit is null or
LastVisit <= '2014-10-12'
ORDER BY
cl.Name
关于php - 在SQL中显示客户名称列表无访问报告的好方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27483536/