mysql - 如果不匹配行则存储在新字段中

mysql - If not match rows then store in new field

给定的查询工作正常,但我需要一些修改。在第三行我有

LEFT JOIN tbl_emp ON inventory.itemGiven = tbl_emp.Sname

如果匹配则过滤输出。 但问题是,所有 inventory.itemGiven 都不存在于 tbl_emp.Sname 中。我想,如果不匹配,则结果存储在不同的字段中。

SELECT `inventory`.`ID` , `inventory`.`out_` , `inventory`.`userName` , date_format( `inventory`.`date` , '%Y-%m-%d' ) AS date, `department`.`id` , `tbl_emp`.`emp_id_number`
FROM `inventory`
LEFT JOIN `tbl_emp` ON `inventory`.`itemGiven` = `tbl_emp`.`Sname`
LEFT JOIN `department` ON `inventory`.`givenDept` = `department`.`dept`
WHERE `out_` >0
LIMIT 0 , 30

我知道这是可能的,请任何人帮助我。 提前致谢。

在 select 部分

中将 tbl_emp.emp_id_number 替换为 IFNULL(tbl_emp.emp_id_number,inventory.itemGiven)
SELECT `inventory`.`ID` , `inventory`.`out_` , `inventory`.`userName` , date_format( `inventory`.`date` , '%Y-%m-%d' ) AS date, `department`.`id` , `tbl_emp`.`emp_id_number`
FROM `inventory`
LEFT JOIN `tbl_emp` ON `inventory`.`itemGiven` = `tbl_emp`.`Sname`
LEFT JOIN `department` ON `inventory`.`givenDept` = `department`.`dept`
WHERE `out_` >0