我有2个表:s_master和p_master。
S_master表
s_id form_id
---- -------
1 kit011
2 kit011
3 kit011
4 kit011
5 kit011
p_master表
s_id staus
---- -------
2 1
3 2
4 1
问题陈述:
我必须从s_master表中获取s_id,该表在p_master表中没有状态1。那意味着我需要获取1,3,5。
为此,我使用了以下查询。
SELECT a.s_id FROM s_master a
left outer join p_master b on a.s_id!=b.s_id
where b.status=1 and a.form_id='kit011';
但结果显示为“空结果集”。
请给我建议查询。提前致谢。
最佳答案
这样尝试
SELECT s.s_id
FROM s_master s LEFT JOIN p_master p
ON s.s_id = p.s_id
WHERE s.form_id = 'kit011'
AND (p.s_id IS NULL OR p.status <> 1);
要么
SELECT s_id
FROM s_master s
WHERE form_id = 'kit011'
AND NOT EXISTS
(
SELECT *
FROM p_master
WHERE s_id = s.s_id AND status = 1
);