Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 依靠工作历史记录_Mysql_Sql_Join - Fatal编程技术网

Mysql 依靠工作历史记录

Mysql 依靠工作历史记录,mysql,sql,join,Mysql,Sql,Join,我有一个表请求: 和一个表requesthx: 一个请求可以由多个技术人员进行多次日志更新。例如,tech1可以为初始电话联系人创建日志,并在日志部分添加注释。然后tech2可以记下这些笔记并完成部分工作要求。Tech 3也可能在同一份工作中等待预定的约会 如果tech3已登录,我想显示tech3的所有未结票证的计数 实现这一目标的最佳方法是什么? 我已经完成了几个难看的查询,这些查询在foreach循环中运行,以添加到count变量,但这似乎是实现简单计数总数的真正漫长的道路 我试过 SE

我有一个表
请求

和一个表
requesthx

一个请求可以由多个技术人员进行多次日志更新。例如,tech1可以为初始电话联系人创建日志,并在日志部分添加注释。然后tech2可以记下这些笔记并完成部分工作要求。Tech 3也可能在同一份工作中等待预定的约会

如果tech3已登录,我想显示tech3的所有未结票证的计数

实现这一目标的最佳方法是什么?
我已经完成了几个难看的查询,这些查询在foreach循环中运行,以添加到count变量,但这似乎是实现简单计数总数的真正漫长的道路

我试过

SELECT requesthx.hxID, requesthx.requestID,
    requesthx.datetime_gmt, requesthx.log, requesthx.techID, requesthx.status,
COUNT($requestTable.requestID) AS tickets, request.status, requesthx.techID
FROM requesthx
LEFT JOIN request 
  ON (requesthx.requestID = request.requestID)
    WHERE (requesthx.status <> 'closed'
    AND request.status = 'open'
    AND requesthx.techID = '1')
GROUP BY requesthx.techID;
选择requesthx.hxID、requesthx.requestID、,
requesthx.datetime\u gmt,requesthx.log,requesthx.techID,requesthx.status,
将($requestTable.requestID)计为票证、request.status、requesthx.techID
来自requesthx
左加入请求
打开(requesthx.requestID=request.requestID)
其中(requesthx.status“closed”
和request.status='open'
和requesthx.techID='1')
按requesthx.techID分组;

…在一个查询中,有5个techID=1的未结票证。我只收到1作为计数。有什么想法吗?

你是对的,数据库有一种计算此类信息的方法

Select count(*) as "TicketCount"
From requesthx
Where techid=3
And status = "open"
Group by techid

我假设两个表中的状态字段都有自己的值

SELECT
    `requesthx`.`hxID`
    , `requesthx`.`requestID`
    , `requesthx`.`datetime_gmt`
    , `requesthx`.`log`
    , `requesthx`.`techID`
    , `requesthx`.`status`
    , COUNT(`request`.`requestID`) AS tickets
    , `request`.`status`
    , `requesthx`.`techID`
FROM
    `requesthx`
    LEFT JOIN `test`.`request` 
        ON (`requesthx`.`requestID` = `request`.`requestID`)
WHERE (`requesthx`.`status` ="logged"
    AND `request`.`status` ="open"
    AND `requesthx`.`techID` =3)
GROUP BY `requesthx`.`techID`;

Hi @威廉如果这个或任何答案已经解决了你的问题,请考虑点击复选标记。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这么做。把你的答案作为垫脚石,我相信我已经弄明白了:
SELECT COUNT(DISTINCT$requestHxTable.requestID)作为$requestTable内部的OpenTickets在$requestTable.requestID=$requestHxTable.requestID上连接$requestHxTable,其中$requestTable.status='open'和$requestHxTable.techID=$techID“