Mysql 如果记录为空,如何执行显示-1的子查询
如果min_stock显示为空,如何使其显示为-1 只是澄清一下,我不能使用join,我需要这样做:即使没有定义MINU库存,所有产品和仓库都会显示MINU库存Mysql 如果记录为空,如何执行显示-1的子查询,mysql,database,Mysql,Database,如果min_stock显示为空,如何使其显示为-1 只是澄清一下,我不能使用join,我需要这样做:即使没有定义MINU库存,所有产品和仓库都会显示MINU库存 建议的优化将不胜感激。使用ifnull函数 SELECT w.warehouse, p.category, p.product, (select cr.min_stock from critical cr where cr.warehouse_id = w.i
建议的优化将不胜感激。使用
ifnull
函数
SELECT w.warehouse,
p.category,
p.product,
(select cr.min_stock
from critical cr
where cr.warehouse_id = w.id
and cr.product_id = p.id) as min_stock
FROM warehouse w,
product p
希望这对您有所帮助。当然您可以使用
加入。您需要一个交叉联接
,因此应该明确说明如何组合这两个表。然后,您可以使用左连接跟随交叉连接
:
SELECT w.warehouse,
p.category,
p.product,
ifnull((select cr.min_stock
from critical cr
where cr.warehouse_id = w.id
and cr.product_id = p.id),0) as min_stock
FROM warehouse w,
product p
创建SQL行时,您可以批量更新所有值,或者将min_stock默认为-1。下面是我要做的:
更新关键集min_stock=-1,其中min_stock=NULL代码>请参见:
SELECT w.warehouse, p.category, p.product,
coalesce(cr.min_stock, -1) as min_stock
FROM warehouse w cross join
product p left join
critical c
on cr.warehouse_id = w.id and cr.product_id = p.id;