Mysql 哪里有不工作的地方

Mysql 哪里有不工作的地方,mysql,sql,exists,Mysql,Sql,Exists,我知道我可以用表连接来实现这一点,但是,我正试图用WHERE EXISTS子句来实现这一点。我知道有65个匹配项,但子查询不起作用。它带来了表scrubs中的所有值 pdwspend.子供应商ID有许多重复的值,这就是我在子查询中使用DISTINCT的原因 SELECT DISTINCT sc.`BW Parent Number` FROM scrubs sc WHERE EXISTS ( SELECT DISTINCT pdwspend.`Child Supplier ID`

我知道我可以用表连接来实现这一点,但是,我正试图用WHERE EXISTS子句来实现这一点。我知道有65个匹配项,但子查询不起作用。它带来了表scrubs中的所有值

pdwspend.
子供应商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

谢谢

我想您需要一个相关的子查询。现在,
存在
要么找到一行(返回所有内容),要么找不到任何行(不返回任何内容)。以下是您想要的查询的猜测:

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

BW父编号
=
子供应商ID
,但是,
子供应商ID
有许多duplicates@nangys . . . 在
exists
子句中,重复项无关紧要。感谢您的帮助。然而,出于某种原因,我使用了您的查询,mysql一直崩溃。有什么想法吗?“崩溃”。这是相当极端的。这个查询可能会产生各种各样的问题——例如,性能或语法错误。我不认为这会使你的服务器“崩溃”。