每个人。我有一个像这样的mySQL表:
DATA(sku,quantity) 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
ABC是主要的SKU,ABC_DExx是子SKU,数量始终为1或0
我的问题是:
如何在主SKU上选择所有数量超过20的Sku?或者如果主SKU的数量超过20,则将选择主SKU和子SKU
像
"SELECT * From DATA Where quantity > 20 ..."
以下是我想要的最终结果(主要SKU(例如:ABC),它的子SKU(例如:ABC_DExx)将显示,因为主要SKU ABC超过20):
DATA(sku,quantity) 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
由于
答案 0 :(得分:0)
你可以使用with和
的连接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
答案 1 :(得分:0)
select sku, quantity
from data
inner join (select sku from data where quantity > 20) data1
on data.sku like data1.sku + '%'
答案 2 :(得分:0)