php - 从表中获取 NULL 值

标签 php mysql sql

如果此查询中不存在其他表,我想从其他表中获取空值

SELECT * FROM Tithing_P LEFT JOIN Tithing 
ON Tithing_P.Tithing_ID = Tithing.Tithing_ID
WHERE YEAR=2015 AND Dateregistered <=2015

这只会与我想要的相反。

我有两张 table

Tithing
Tithing_ID | Dateregistered | Name |
    1      |   2014-01-01   |   J  |
    2      |   2013-01-01   |   D  |

Tithing.Tithing_ID {PK}
Tithing_P.Tithing_ID {FK} to Tithing.Tithing_ID
Tithing_P_ID {PK}

Tithing_P
Tithing_ID | Tithing_P_ID | Jan | Feb | Year |
     1     |       1      |  10 |  10 | 2014 |

我的查询是

SELECT * FROM Tithing_P LEFT JOIN Tithing 
ON Tithing_P.Tithing_ID = Tithing.Tithing_ID
WHERE YEAR=2015 AND Dateregistered <=2015

在我的页面上tithing.php?year=2015

我想显示那些从 2015 年开始注册的姓名,如果他们没有数据,我希望 Jan 和 Feb 为 0/NULL

this what I wanted my output to be:
Name |  Jan  |  Feb  |  YEAR  |
  J  |   0   |   0   |  2015  |
  D  |   0   |   0   |  2015  |

最佳答案

您在这里寻找的是反连接,这将要求您反转 LEFT JOIN 中表的顺序,或使用 RIGHT JOIN 代替,例如:

SELECT * FROM Tithing LEFT JOIN Tithing_P 
ON Tithing.Tithing_ID = Tithing_P.Tithing_ID
WHERE Dateregistered <= 2015 AND Tithing_P.Tithing_ID IS NULL

SELECT * FROM Tithing_P RIGHT JOIN Tithing 
ON Tithing_P.Tithing_ID = Tithing.Tithing_ID
WHERE Dateregistered <=2015 AND Tithing_P.Tithing_ID IS NULL

反连接的目的是发现外连接一侧存在哪些记录,而外连接另一侧没有任何匹配记录。

关于php - 从表中获取 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26047231/

相关文章:

php - 发布到自己的页面而不是将信息提交到文本文档

php - 当我在 mysql 中调用过程时发生 #1054 错误

mysql - 将 View Algo 从左连接更改为右连接,现在无法访问数据库

mysql - 使用 MySQL 中的两个表获取名称的存储过程

sql - 检查对 SQL Server 数据库的更改?

php - 您可以将场景称为 Behat 3 中的步骤吗?

java - 继续使用 PHP 或迁移到 Java 框架

java - 从 Java 调用存储过程

sql - Firebird 存储过程中的动态 SQL(where)

php - 数据表 |如何做自己的选择?