php - 在SQL中显示客户名称列表无访问报告的好方法是什么

标签 php mysql sql

我尝试了越来越多的方法来显示未访问报告列表,但我失败了。那么,该页面必须显示用户选择的日期选择器未访问的公司列表。 详细信息:我有一个表调用

  • 客户表: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/

相关文章:

php - 获取要写入 SQL 表的 PHP 文件

php - PHP Laravel 查询生成器中的 SQL 语法 PostgreSQL 与 MySQL

php - 如何调试(看似)有问题的 SwiftMailer 附件?

java - 转换结果 java.lang.NullPointerException 时出错 & 解析数据 org.json.JSONException 时出错 : End of input at character 0 of

c# - 在 C# 中实现 MYSQL 通知系统失败

sql - Sql连接查询

php - 在 php 中获取我的系统时区

php - 如何使用数据库 laravel 背包中的数据更改标题

Mysql根据季度计算增长

mysql - 在一个查询中从单个 mysql 表中选择行和总和