我有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
 );

07-24 09:54