首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当value为NULL时删除SQL输出

当value为NULL时删除SQL输出
EN

Stack Overflow用户
提问于 2013-01-24 04:37:25
回答 3查看 213关注 0票数 0

下面的SQL查询适用于我,但是当staffNo为null 6次(每个员工一次)时,它会返回属性值。我想返回属性所有者,即使staffNo为空,没有6个返回值。

代码语言:javascript
复制
SELECT s.branchNo, s.staffNo, s.fName, s.lName, propertyNo, p.staffNo,
       o.fName, o.lName, o.ownerNo
  FROM staff s, propertyforrent p, privateowner o
 WHERE s.staffNo = p.staffNo AND o.ownerNo = p.ownerNo
    OR p.staffNo IS NULL     AND o.ownerNo = p.ownerNo
 ORDER BY s.branchNo, s.staffNo, propertyNo

结果

代码语言:javascript
复制
B003    SG14    David   Ford    PG16    SG14    Tony    Shaw    CO93
B003    SG14    David   Ford    PG4     NULL    Tina    Murphy  CO40
B003    SG37    Ann     Beech   PG21    SG37    Carol   Farrel  CO87
B003    SG37    Ann     Beech   PG36    SG37    Tony    Shaw    CO93
B003    SG37    Ann     Beech   PG4     NULL    Tina    Murphy  CO40
B003    SG5     Susan   Brand   PG4     NULL    Tina    Murphy  CO40
B005    SL21    John    White   PG4     NULL    Tina    Murphy  CO40
B005    SL41    Julie   Lee     PG4     NULL    Tina    Murphy  CO40
B005    SL41    Julie   Lee     PL94    SL41    Carol   Farrel  CO87
B007    SA9     Mary    Howe    PA14    SA9     Joe     Keogh   CO46
B007    SA9     Mary    Howe    PG4     NULL    Tina    Murphy  CO40

以下是所需的结果

代码语言:javascript
复制
B003    SG14    David   Ford    PG16    SG14    Tony    Shaw    CO93
B003    SG14                    PG4     NULL    Tina    Murphy  CO40
B003    SG37    Ann     Beech   PG21    SG37    Carol   Farrel  CO87
B003    SG37    Ann     Beech   PG36    SG37    Tony    Shaw    CO93
B005    SL41    Julie   Lee     PL94    SL41    Carol   Farrel  CO87
B007    SA9     Mary    Howe    PA14    SA9     Joe     Keogh   CO46

提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-24 04:51:45

使用左连接可能会有所帮助

代码语言:javascript
复制
SELECT s.branchNo, s.staffNo, s.fName, s.lName, propertyNo, p.staffNo,
       o.fName, o.lName, o.ownerNo
  FROM privateowner o
  LEFT JOIN propertyforrent p ON o.ownerNo = p.ownerNo
  LEFT JOIN staff s ON s.staffNo = p.staffNo

 ORDER BY s.branchNo, s.staffNo, propertyNo
票数 3
EN

Stack Overflow用户

发布于 2013-01-24 04:56:02

试试这个:

代码语言:javascript
复制
SELECT s.branchNo, s.staffNo, s.fName, s.lName, propertyNo, p.staffNo,
       o.fName, o.lName, o.ownerNo
  FROM staff AS s LEFT JOIN propertyforrent AS p
  ON s.staffNo = p.staffNo AND  p.staffNo IS NOT NULL
  LEFT JOIN privateowner AS o
 ORDER BY s.branchNo, s.staffNo, propertyNo;
票数 1
EN

Stack Overflow用户

发布于 2013-01-24 04:56:45

希望这是正确的..。

代码语言:javascript
复制
SELECT s.branchNo, s.staffNo, s.fName, s.lName, propertyNo, p.staffNo, o.fName, o.lName, o.ownerNo
FROM staff s 
join propertyforrent p on s.staffNo = p.staffNo
left join privateowner o on o.ownerNo = p.ownerNo
where p.staffNo is not null
ORDER BY s.branchNo, s.staffNo, propertyNo

大卫·福特下面的空栏是故意的吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14488910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档