特别 Select 声明。 Select 所有 SKU 基于其主要 SKU

Special Select Statement. Select all SKU base on its Main SKU

每一个。我有一个 mySQL table 这样的:

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。
我的问题是:
我如何才能 select 所有数量超过 20 个的 Sku 基于主要 SKU?或者,如果主 SKU 的数量超过 20,则主 SKU 及其子 SKU 将 selected.

这样的东西
     "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

谢谢

您可以将内部联接与同类和联合一起使用

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
select sku, quantity
  from data
       inner join (select sku from data where quantity > 20) data1
          on data.sku like data1.sku + '%'

我尝试使用 CONCAT 运算符;请找到以下代码。

Demo

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, '%');

输出