0

我有一个给我带来麻烦的查询,我不知道该怎么做

我必须从 TICKETS 表中检索记录并将其与其他 2 个表连接起来,这不是问题,我需要将记录中的一个值替换为另一个表中的值.... 例如:

桌票:

numint user_id type desc 附加优先状态日期分配

表用户

numint company_id 姓名 电子邮件 用户名 密码 ps 安全令牌日期

表公司

数字名称

示例记录

公司名 - 用户名 - 类型 - 职务 - 优先级 - 状态 - 日期 - 分配

“someCompany” - “someUser” - “someTitle” - 1 - “open” - “yyy/mm/dd” - 2(user_id)

在返回记录的分配字段中,如果它不是 0(零),我需要用用户表中的对应值替换它

到目前为止,这是我的查询

SELECT tickets.numint, tickets.type, tickets.title, tickets.description,
       tickets.priority, tickets.status, tickets.date,
       users.name AS user_name, companies.name AS company_name,
       CASE WHEN tickets.assignation=0 THEN 'not-assigned'
       ELSE ????????? END AS assignation
       FROM tickets
       LEFT JOIN users ON tickets.user_id = users.numint
       LEFT JOIN companies ON users.company_id = companies.numint

我不知道如何替换该值,或者 CASE 是否应该在连接之后...

4

1 回答 1

2

是否要将用户名显示为分配。使用 users.name 以防万一。

SELECT tickets.numint, tickets.type, tickets.title, tickets.description,
       tickets.priority, tickets.status, tickets.date,
       users.name AS user_name, companies.name AS company_name,
CASE WHEN tickets.assignation=0 THEN 'not-assigned'
ELSE users1.name END AS assignation
FROM tickets
LEFT JOIN users ON tickets.user_id = users.numint
LEFT JOIN companies ON users.company_id = companies.numint
LEFT JOIN users AS users1 ON tickets.assignation = users1.numint
于 2013-09-27T14:37:01.023 回答