哪里没有工作

时间:2014-09-21 16:31:09

标签: mysql sql exists

我知道我可以使用表连接来执行此操作,但是,我正在尝试使用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

由于

1 个答案:

答案 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