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“