我需要获取表A中m_active = N的所有元素m_id,并且表B中的相应元素具有ALL v_active = N.
m_id是表B中的外键。
在下面的例子中,我要找的是m_id = 2和m_id = 4,因为它们都满足m_active = N的条件并且具有ALL 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
答案 0 :(得分: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'
);
答案 1 :(得分:2)
SELECT *
FROM a
WHERE m_active = 'N'
AND m_id NOT IN
(
SELECT m_id
FROM b
WHERE v_active <> 'N'
)
这也将选择a
中b
中没有相应条目的所有条目(因此所有0
条0
条目都处于非活动状态。这可能是也可能不是你想要的。