特别 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 运算符;请找到以下代码。
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, '%');
输出
每一个。我有一个 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 运算符;请找到以下代码。
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, '%');
输出