mysql - 多表 - osticket

标签 mysql server webserver osticket

我的查询为每张票提供多行。我想在一行中列出所有自定义值。当我查询数据库时,我希望将 val.value 列为针对每个 ticket_id 的列,而不是每个 ticket_id

的多行

我希望输出将 val.value 显示为列。

SELECT 
ticket.ticket_id,ticket.`number`,ticket.dept_id,val.field_id,val.value,
ticket.staff_id,ticket.team_id,user.name,   dept.dept_name,status.state,status.name as 
status,ticket.source,ticket.isoverdue,ticket.isanswered,ticket.created 
FROM ost_TICKET ticket 
LEFT JOIN ost_ticket_status status ON status.id = ticket.status_id 
LEFT JOIN ost_user user ON user.id = ticket.user_id 
LEFT JOIN ost_department dept ON ticket.dept_id=dept.dept_id 
LEFT JOIN ost_form_entry entry ON ticket.ticket_id = entry.object_id 
LEFT JOIN ost_form_entry_values val ON entry.id = val.entry_id

输出如下:

ticket_id,number,dept_id,field_id,value,staff_id,team_id,name,dept_name,state,status,source,isoverdue,isanswered,created

4, 587202,4,3,NULL,15,0,Mark D,SalesDep,open,Open,Phone,0,0,10/14/2014 9:09 4, 587202,4,4,NULL,15,0,Mark D,SalesDep,open,Open,Phone,0,0,10/14/2014 9:09 4, 587202,4,87,NULL,15,0,Mark D,SalesDep,open,Open,Phone,0,0,10/14/2014 9:09 4, 587202,4,117,NULL,15,0,Mark D,SalesDep,open,Open,Phone,0,0,10/14/2014 9:09 4, 587202,4,20,Fish Farm,15,0,Mark D,SalesDep,open,Open,Phone,0,0,10/14/2014 9:09 4, 587202,4,22,Normal,15,0,Mark D,SalesDep,open,Open,Phone,0,0,10/14/2014 9:09 4, 587202,4,73,nya-08-211,15,0,Mark D,SalesDep,open,Open,Phone,0,0,10/14/2014 9:09 4, 587202,4,74,88,15,0,Mark D,SalesDep,open,Open,Phone,0,0,10/14/2014 9:09 4, 587202,4,84,Bara,15,0,Mark D,SalesDep,open,Open,Phone,0,0,10/14/2014 9:09 4, 587202,4,85,Shaba,15,0,Mark D,SalesDep,open,Open,Phone,0,0,10/14/2014 9:09 4, 587202,4,86,Kolkata,15,0,Mark D,SalesDep,open,Open,Phone,0,0,10/14/2014 9:09 4, 587202,4,165,Tango,15,0,Mark D,SalesDep,open,Open,Phone,0,0,10/14/2014 9:09

最佳答案

这只是一个猜测(因为OP未提供表架构):

如果您 JOIN 的其中一个表中有 1 个工单行有多行,那么您的工单将有双行(例如 2 封电子邮件)。

查询也有错误的连接:

LEFT JOIN ost_email email ON user.id = email.email_id

我想应该是:

LEFT JOIN ost_email email ON user.id = email.user_id

编辑: 您可以尝试使用DISTINCT,但必须检查结果中的数据是否正确。

关于mysql - 多表 - osticket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31852472/

相关文章:

python - 使用 tf.saved_model.simple_save() 时出错

php - ACCESS_REFUSED - 使用身份验证机制 AMQPLAIN 拒绝登录

react-native - 如何在 React Native 中处理重复的推送通知提醒

ruby - 如何使用 ruby​​ 将大文件从客户端传输到服务器?

javascript - 协助将 javascript 函数包含在循环中 (PHP)

mysql - 我试图在我的 ruby​​ on rails 项目中放置一个缩略图,我如何将图像保存在 mysql 中?

javascript - 在 Node.js 中发送文件之前如何设置 MIME 类型?

java - 聊天服务和持久性

主服务器和本地笔记本电脑之间的 MySQL 复制

c# 使用两个 MysqlReaders