如果此查询中不存在其他表,我想从其他表中获取空值
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/