【发布时间】:2016-01-29 21:38:12
【问题描述】:
我正在使用 MySQL 和 PHP。 我有 2 张桌子。
第一个有日期。
这个表叫dates
+-------+-------------+----------+---------+
| id | unixTime | month | year |
+------------------------------------------+
| 1 | 1443657600 | 10 | 2015 |
| | | | |
| 2 | 1443657600 | 11 | 2015 |
| | | | |
| 3 | 1443657600 | 12 | 2015 |
| | | | |
| 4 | 1443657600 | 01 | 2016 |
| | | | |
+-------+-------------+----------+---------+
如果您查询SELECT * FROM analytics WHERE clientfk=36,下表将显示。只有 3 个条目,因为客户 #36 在 1 月份不再是客户。
这个表叫做analytics
+------------------------------------------------+
| id datefk Value clientfk |
+------------------------------------------------+
| 156 1 "some value" 36 |
| |
| 157 2 "another value" 36 |
| |
| 157 3 "thrid value" 36 |
| |
+------------------------------------------------+
我想加入(?)联合(?)这些表并获得如下所示的输出:(注意,null 值)
+------------------------------------------------+
| month year client value |
+------------------------------------------------+
| 10 2015 36 "Some value" |
| |
| 11 2015 36 "Another value" |
| |
| 12 2015 36 "third value" |
| |
| 1 2016 36 NULL |
+------------------------------------------------+
我尝试了下面的查询,在无数其他事情中,但总是不返回任何内容或只返回 3 行
SELECT *
FROM analytics a
WHERE a.clientfk = 36
AND NOT EXISTS (SELECT null FROM dates d
WHERE d.id = a.datefk)
【问题讨论】:
标签: php mysql join null left-join