特殊select语句根据主sku选择所有sku

gojuced7  于 2021-06-24  发布在  Mysql
关注(0)|答案(3)|浏览(539)

每一个。我有这样一个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

是主要sku,\ dexx是子sku,数量总是1或0。
我的问题是:
如何在主sku的基础上选择所有数量超过20的sku?或者如果主sku的数量超过20,则将选择主sku和it子sku。
像这样的事情

"SELECT * From DATA Where quantity > 20 ..."

下面是我想要的最终结果(主sku(例如:)和it子sku(例如:\ U dexx)将显示,因为主sku 超过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

谢谢

ffx8fchx

ffx8fchx1#

你可以用ainner加入like和union

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
jhdbpxl9

jhdbpxl92#

我试着使用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, '%');

输出

f0ofjuux

f0ofjuux3#

select sku, quantity
  from data
       inner join (select sku from data where quantity > 20) data1
          on data.sku like data1.sku + '%'

相关问题