左外部联接MySQL查询返回空结果集

左外部联接MySQL查询返回空结果集,mysql,sql,left-join,Mysql,Sql,Left Join,我有两张桌子:s\u master和p\u master S_主表 s_id form_id ---- ------- 1 kit011 2 kit011 3 kit011 4 kit011 5 kit011 s_id staus ---- ------- 2 1 3 2 4 1 p_主表 s_id form_id ---- ------- 1 kit011

我有两张桌子:s\u masterp\u master

S_主表

s_id   form_id
----   -------
  1     kit011
  2     kit011
  3     kit011
  4     kit011
  5     kit011
s_id   staus
----   -------
  2     1
  3     2
  4     1
p_主表

s_id   form_id
----   -------
  1     kit011
  2     kit011
  3     kit011
  4     kit011
  5     kit011
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.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.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.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);


您的回答中有打字错误(
s_-master
was
s_-matser
p_-master
was
p_-matser
),这是错误的。编辑以更正它。@BhavikShah感谢您的输入。如果您想从上面提到的第一个案例中获得输出,那么您必须在查询末尾应用order by子句。您不需要在第一个案例中使用order by子句来获得如上所示的输出吗?我很惊讶…@BhavikShah感谢你的仔细,但问题不在于订单,订单并不总是重要的。如果需要,它可以很容易地应用。答案的全部目的是显示外部联接的正确使用。但我还是根据您的反馈删除了输出。您的答案中有输入错误(
s_-master
was
s_-matser
p_-master
was
p_-matser
),这是错误的。编辑以更正它。@BhavikShah感谢您的输入。如果您想从上面提到的第一个案例中获得输出,那么您必须在查询末尾应用order by子句。您不需要在第一个案例中使用order by子句来获得如上所示的输出吗?我很惊讶…@BhavikShah感谢你的仔细,但问题不在于订单,订单并不总是重要的。如果需要,它可以很容易地应用。答案的全部目的是显示外部联接的正确使用。但我还是根据您的反馈删除了输出。您的答案中有输入错误(
s_-master
was
s_-matser
p_-master
was
p_-matser
),这是错误的。编辑以更正它。@BhavikShah感谢您的输入。如果您想从上面提到的第一个案例中获得输出,那么您必须在查询末尾应用order by子句。您不需要在第一个案例中使用order by子句来获得如上所示的输出吗?我很惊讶…@BhavikShah感谢你的仔细,但问题不在于订单,订单并不总是重要的。如果需要,它可以很容易地应用。答案的全部目的是显示外部联接的正确使用。但我还是根据您的反馈删除了输出。您的答案中有输入错误(
s_-master
was
s_-matser
p_-master
was
p_-matser
),这是错误的。编辑以更正它。@BhavikShah感谢您的输入。如果您想从上面提到的第一个案例中获得输出,那么您必须在查询末尾应用order by子句。您不需要在第一个案例中使用order by子句来获得如上所示的输出吗?我很惊讶…@BhavikShah感谢你的仔细,但问题不在于订单,订单并不总是重要的。如果需要,它可以很容易地应用。答案的全部目的是显示外部联接的正确使用。但我还是根据你的反馈删除了输出。