每个人。我有一个像这样的mySQL表:
数据(sku,数量) ABC 55 ABC_DE005 1 ABC_DE006 1 ABC_DE007 1 ABC_DE008 1 DEF 30 DEF_DE56 1 DEF_DE57 1 DEF_DE58 1 DEF_DE59 1 DEF_DE60 1 DEF_DE61 1 XYZ 0 XYZ_DE565 0 XYZ_DE566 0 XYZ_DE567 0 XYZ_DE568 0 XYZ_DE569 0 XYZ_DE569 0
ABC是主要的SKU,ABC_DExx是子SKU,数量总是1或0。
我的问题是:
如何在主Sku的基础上选择数量超过20的SKU?或者,如果主SKU的数量超过20,那么主SKU和它的子SKU将被选中。
有些事像
"SELECT * From DATA Where quantity > 20 ..." 下面是我想要的最终结果(主SKU (Ex: ABC)和它的子SKU (例如: ABC_DExx)将出现,因为主SKU ABC超过20):
资料(sku,数量) ABC 55 ABC_DE005 1 ABC_DE006 1 ABC_DE007 1 ABC_DE008 1 DEF 30 DEF_DE56 1 DEF_DE57 1 DEF_DE58 1 DEF_DE59 1 DEF_DE60 1 DEF_DE61 1
谢谢
发布于 2018-06-06 08:53:39
我试过使用CONCAT操作符,请查找以下代码。
演示
SELECT DATA.sku, DATA.quantity FROM DATA
INNER JOIN (SELECT * FROM DATA WHERE quantity > 20) DATA1 ON
DATA.sku = DATA1.sku OR DATA.sku LIKE CONCAT(DATA1.sku, '%');输出

发布于 2018-04-25 19:49:47
你可以用ainner和like和一个联合。
select a.*
from data a
inner join data b on b. quantity > 20
and a.sku like concat( b.sku , '%' )
union
select *
from data
where quantity > 20
order by sku发布于 2018-04-25 20:41:11
select sku, quantity
from data
inner join (select sku from data where quantity > 20) data1
on data.sku like data1.sku + '%'https://stackoverflow.com/questions/50030197
复制相似问题