每一个我有一个像这样的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
谢谢
最佳答案
我尝试使用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, '%');
输出量
关于mysql - 特殊选择语句。根据其主要SKU选择所有SKU,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50030197/