我知道我可以使用表连接来执行此操作,但是,我正在尝试使用WHERE EXISTS子句执行此操作。我知道有65个匹配,但子查询不起作用。它带来了表擦洗的所有值。
pdwspend。Child Supplier ID
有许多重复值,这就是我在子查询中使用DISTINCT的原因。
SELECT DISTINCT sc.`BW Parent Number`
FROM scrubs sc
WHERE EXISTS (
SELECT DISTINCT pdwspend.`Child Supplier ID`
FROM pdwspend
WHERE pdwspend.`BU ID` = 'BU_1'
AND pdwspend.version LIKE '%GOV%'
)
AND SC.`year` =2014
由于
答案 0 :(得分:2)
我怀疑你想要一个相关的子查询。现在,exists
要么找到一行(并返回所有内容),要么找不到行(并且没有返回任何内容)。这是猜测你想要的查询:
SELECT DISTINCT sc.`BW Parent Number`
FROM scrubs sc
WHERE EXISTS (SELECT 1
FROM pdwspend s
WHERE s.`BU ID` = 'BU_1' AND s.version LIKE '%GOV%' AND
s.`Child Supplier ID` = sc.`BW Parent Number`
) AND
SC.`year` = 2014;
另请注意,distinct
子查询不需要exists
。