gpt4 book ai didi

mysql - 如果其他值为 null,则将某些值设置为 NULL

转载 作者:行者123 更新时间:2023-11-29 14:05:19 27 4
gpt4 key购买 nike

我有一个中等规模的查询,在获取某些字段时遇到一些问题。

SELECT DISTINCT 
enc.id, enc.cus_id, enc.createdon, enc.status,
enc.segment, enc.currentstep, enc.groupid, enc.fdprotocol,
enc_task.linkfile, cus.fname, cus.lname, login.first_name,
login.last_name, login.username, login.user_code, fp.protocol
FROM
mob_encounters_task enc_task, mob_encounters enc,
mob_customer cus, mob_login login, mob_protocol_type fp
WHERE
enc.id=enc_task.encounterid
AND
cus.id=enc_task.cus_id
AND
login.id=enc.createdby
GROUP BY enc.id

fp.protocol是一个字符串,表fp上最多有5或6个“协议(protocol)”。

我想做的是,如果 enc.fdprotocol 为空,则 fp.protocol 应该为空,否则获取 fp.protocol关联到 fp.id= enc.fdprotocol

如果这听起来令人困惑,请告诉我,我已经被困在这个问题上有一段时间了

最佳答案

我发现使用实际的 JOIN 语法使查询更具可读性和可维护性。在这种情况下,您需要使用 LEFT JOIN 并且必须为此更改语法:

SELECT enc.id, enc.cus_id, enc.createdon, enc.status, enc.segment, 
enc.currentstep, enc.groupid, enc.fdprotocol, enc_task.linkfile, cus.fname,
cus.lname, login.first_name, login.last_name, login.username, login.user_code,
fp.protocol
FROM mob_encounters_task enc_task
JOIN mob_encounters enc ON enc.id=enc_task.encounterid
JOIN mob_customer cus ON cus.id=enc_task.cus_id
JOIN mob_login login ON login.id=enc.createdby
LEFT JOIN mob_protocol_type fp ON fp.id = enc.fdprotocol

而且我不相信你需要DISTINCT

关于mysql - 如果其他值为 null,则将某些值设置为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14450165/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com