具体问题描述:https://ask.csdn.net/questions/763457#answer_821953
问题:
B表有13条数据 13个产品,
A表有1000条数据 ,
如果A不存在B表数据则把不存在B表的数据也查询出来显示 后面的库存 金额,等字段值为0 ,
简单点就是 A表一条数据对应B表13条如果A表有10条就要查询出10*13的记录130条 没有值的显示为空
比如 b表有产品1 产品2 a表数据 只有1条如果不存在b表关联数据有也要显示
产品1 1 left right union试过了 还有只查询 都没用
产品2 null
比如说a表id为1只有12个产品 但是产品表有13个 需要显示 13个产品数据没有存在a表的产品显示产品名称其它为空值
参考代码:
select p.id pid,p.name pname,
(CASE
WHEN p.id = d.product_id THEN d.id
else null
END) stockDetailId,
(CASE
WHEN p.id = d.product_id THEN d.stock_id
else stock_id
END) stock,
(CASE
WHEN p.id = d.product_id THEN d.product_id
else null
END) productId,
(CASE
WHEN p.id = d.product_id THEN p.pic
else null
END) productPicUrl,
(CASE
WHEN p.id = d.product_id THEN p.name
else null
END) productName,
(CASE
WHEN p.id = d.product_id THEN p.sale_price
else 0
END) productPrice,
(CASE
WHEN p.id = d.product_id THEN d.six_month_exp_num
else 0
END) sixMonthExpNum,
(CASE
WHEN p.id = d.product_id THEN d.nine_month_exp_num
else 0
END) nineMonthExpNum,
(CASE
WHEN p.id = d.product_id THEN d.product_num
else 0
END) productNum,
(CASE
WHEN p.id = d.product_id THEN d.alar_info
else null
END) alarInfo,
(CASE
WHEN p.id = d.product_id THEN d.product_price
else 0
END) product_price,
(CASE
WHEN p.id = d.product_id THEN d.product_num
else 0
END) product_num
from wx_mini_product p,
wx_mini_product_stock_detail d
group by p.id,d.stock_id
ORDER BY d.stock_id;