特别选择声明。选择主SKU上的所有SKU

时间:2018-04-25 19:44:12

标签: mysql sql select mysql-select-db

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

由于

3 个答案:

答案 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)

我尝试过使用CONCAT操作员;请找到以下代码。

Demo

plugin.js

输出

Output of above query