我有一个给我带来麻烦的查询,我不知道该怎么做
我必须从TICKETS表中检索记录并将其与其他2个连接在一起,这不是问题,我需要将记录中的一个值替换为另一个表中的值.... 对于Eg:
表门票:
numint 用户身份 类型 降序 连接 优先 状态 日期 分配
表用户
numint COMPANY_ID 名称 电子邮件 用户名 密码 PS 安全 代币 日期
表公司
numint 名称
示例记录
company_name - user_name - type - title - priority - status - date - assignation
“someCompany” - “someUser” - “someTitle” - 1 - “open” - “yyy / mm / dd” - 2(user_id)
在返回记录的赋值字段中,我需要用users表中的对应值替换它,如果它不是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应该在连接之后...
答案 0 :(得分: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