2016-03-06 43 views
-1

给定的查询工作正常,但我想要一些修改。在第三行我有mysql - 如果不匹配行然后存储在新字段

LEFT JOIN tbl_emp ON inventoryitemGiven = tbl_empSname

这是过滤输出,如果匹配。 但问题是,所有的inventoryitemGiven不存在于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 

我知道这是可能的,请任何人帮助我。 在此先感谢。

+0

你想要什么到底是什么?如果数据不会在'inventory.itemGiven = tbl_emp.Sname'中匹配,您是否想与其他字段匹配? –

+0

如果这不匹配,那么我想单独获取'inventory.itemGiven'。 –

+0

你能否详细说明你将如何得到那一个? –

回答

1

中选择部分替换tbl_emp.emp_id_numberIFNULL(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 
+0

谢谢!在答案中更新。 –

+0

参见COALESCE()。 – Strawberry

相关问题