LEFT OUTER JOIN MySQL查询返回空结果集

时间:2013-11-21 05:38:33

标签: mysql sql left-join

我有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 表。这意味着我需要获取 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';

但结果显示“空结果集”。

请建议我查询。提前谢谢。

1 个答案:

答案 0 :(得分:3)

以这种方式试试

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