0
我正在使用MySQL和PHP。我有4張桌子。當其他表中沒有匹配時返回NULL行
第一個有日期。這臺被稱爲日期
+-------+-------------+----------+---------+
| 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 AND metricfk=3
下面會顯示。只有3個條目,因爲客戶#36在1月份不再是客戶。
此表被稱爲分析
+----------------------------------------------------------+
| id datefk value clientfk metricfk|
+----------------------------------------------------------+
| 156 1 "some value" 36 3 |
| |
| 157 2 "another value" 36 3 |
| |
| 157 3 "thrid value" 36 3 |
| |
+----------------------------------------------------------+
我有另一個表稱爲指標,看起來像這樣。它是一個度量標準列表,將用於顯示所有日期的所有analytics
的值。最後一個表僅僅是客戶
+--------------------------------+
| id metric |
+--------------------------------+
| 1 "Some metric" |
| |
| 2 "Another metric" |
| |
| 3 "A third metric" |
| |
| 4 "One more metric" |
+--------------------------------+
+--------------------------------+
| id clientName |
+--------------------------------+
| 1 "Some client" |
| |
| 2 "Another client" |
| |
| 3 "A third client" |
| |
| 4 "One more client" |
+--------------------------------+
我需要我的輸出是基於度量這些表的組合,但包括行,其中沒有數據。例如,客戶#36在1月份不再是客戶,所以我想要一個NULL
行。就像這樣:
+------------------------------------------------+
| month year client value |
+------------------------------------------------+
| 10 2015 36 "Some value" |
| |
| 11 2015 36 "Another value" |
| |
| 12 2015 36 "third value" |
| |
| 1 2016 36 NULL |<-- this row has NULL
| |
| 10 2015 37 "value 1" |
| |
| 11 2015 37 "value 2" |
| |
| 12 2015 37 "value" |
| |
| 1 2016 37 "One more value" |
+------------------------------------------------+
我試過很多東西,JOIN
,LEFT JOIN
,COALESCE
和asking the wrong question,但我的MySQL的知識通常僅限於SELECT * FROM table
這不這樣做,該行已丟失,不爲NULL – alanj