不是最好的标题,因此我无法找到能解决我的问题的解决方案,如果你知道一个,请指出我的方向。
目前我有以下查询,
SELECT PRODUCT_NAME
,LIVE
,LOCATION
FROM PRODUCT_TABLE
WHERE ORDER = 'ONLINE'
AND LIVE = '0' OR '1'
这本质上是一个非常简单的查询,可以回收大量数据,我一直在使用Excel深入到我需要的东西,但是我相信你可以想象一个非常繁琐的过程,所以最好更喜欢做它直接用SQL,因为我知道它可以完成,只是我的知识在一段时间不使用它后完全消失了。
但基本上我想要实现的是在线查找所有在线的产品(0表示上述查询中的YES),并且在另一个非现场的位置具有匹配的产品名称(在这种情况下)不活= 1)。
例如,下面是一些以类似方式格式化的数据。
LOCATION LIVE PRODUCT_NAME
BERLIN 0 CHAIR
LONDON 1 CHAIR
PARIS 0 LAMP
PARIS 0 SOFA
WARSAW 1 CHAIR
MADRID 0 CHAIR
MANCHESTER 1 SOFA
如果有人可以提供解决方案或指出我的方向非常好,谢谢!
答案 0 :(得分:2)
你想要这样的东西:
select pt.*
from product_table pt
where pt.live = '0' and
exists (select 1
from product_table pt2
where pt2.product_name = pt.product_name and
pt2.location <> pt.location and
pt2.live = '1'
);
答案 1 :(得分:0)
SELECT DISTINCT
pt.PRODUCT_NAME
,pt.LIVE
,pt.LOCATION
FROM PRODUCT_TABLE pt
LEFT JOIN PRODUCT_TABE pt2
on pt.NAME = pt2.NAME
AND pt2.LIVE = 1
AND pt.LOCATION != pt2.LOCATION
WHERE pt.ORDER = 'ONLINE'
AND pt.LIVE = '0'
AND pt2.NAME IS NOT NULL