1

我需要获取表 A 的所有元素 m_id,其中 m_active 为 = N,并且表 B 中的相应元素具有所有 v_active = N。

m_id 是表 B 中的外键。

在下面的示例中,我要查找的是 m_id=2 和 m_id=4,因为它们都满足 m_active=N 并且所有 v_active = N 的条件。

我该怎么做?

谢谢

表 A 示例:

m_id     m_active   
1           Y
2           N
3           Y
4           N

表 B 示例:

v_id    m_id    v_active
 1       1         N
 2       1         Y
 3       1         N
 4       2         N
 5       2         N
 6       2         N
 7       3         N
 8       3         Y
 9       3         Y
10       4         N 
4

2 回答 2

3

尝试这个:

SELECT * FROM A 
WHERE m_active='N'
AND NOT EXISTS (
    SELECT * FROM B 
    WHERE B.m_id=A.m_id
    AND B.v_active<>'N'
);
于 2013-05-06T17:09:36.723 回答
2
SELECT  *
FROM    a
WHERE   m_active = 'N'
        AND m_id NOT IN
        (
        SELECT  m_id
        FROM    b
        WHERE   v_active <> 'N'
        )

这还将选择a其中没有相应条目的所有条目b(因此所有条目都处于非活动状态)。这可能是也可能不是您想要的。00

于 2013-05-06T17:04:45.467 回答