mysql - 当值为 NULL 时删除 SQL 输出

标签 mysql sql

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

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

结果

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

这是想要的结果

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

提前致谢!

最佳答案

使用左连接可能会有帮助

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

关于mysql - 当值为 NULL 时删除 SQL 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14488910/

相关文章:

php - 在 SQL 中合并相似表第 2 部分

python - 具有多个过滤聚合的 SQLAlchemy 查询

mysql - 将表与设置的数据连接起来

mysql - SQL GROUP BY语句只能用number来分组?

php - PHP Store不显示产品

sql - 对值进行总计并查找前 x 个值

php - 使用bash从mysql获取数据

java - java中通过mysql请求排序

php - 从表单向数据库提交值

sql - 我能做什么? Sequelize isnull