首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特殊选择语句。根据其主SKU选择所有SKU

特殊选择语句。根据其主SKU选择所有SKU
EN

Stack Overflow用户
提问于 2018-04-25 19:44:12
回答 3查看 65关注 0票数 0

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

有些事像

代码语言:javascript
复制
     "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

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-06 08:53:39

我试过使用CONCAT操作符,请查找以下代码。

演示

代码语言:javascript
复制
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, '%');

输出

票数 0
EN

Stack Overflow用户

发布于 2018-04-25 19:49:47

你可以用ainner和like和一个联合。

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2018-04-25 20:41:11

代码语言:javascript
复制
select sku, quantity
  from data
       inner join (select sku from data where quantity > 20) data1
          on data.sku like data1.sku + '%'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50030197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档