我有這個表mytable中的最大項:行的MySQL的SELECT id其中最偉大的幾列
+----+--------------------------------------+
| id | date1 | date2 | date3 |
+----+--------------------------------------+
| 1 | 2014-01-08 | NULL | NULL |
| 2 | 2014-05-09 | NULL | NULL |
| 3 | 2014-06-13 | NULL | NULL |
| 4 | NULL | 2014-03-24 | NULL |
| 2 | NULL | NULL | 2014-08-15 |
| 4 | 2014-01-01 | NULL | NULL |
| 1 | 2014-02-15 | NULL | NULL |
| 3 | NULL | 2014-12-06 | 2014-10-12 |
| 4 | 2014-08-06 | NULL | NULL |
| 2 | 2014-05-22 | NULL | NULL |
+----+--------------------------------------+
現在,我嘗試有一個結果如下選擇:
id max_date1 max_date2 max_date3
---------------------------------------------
| 3 | 2014-08-06 | 2014-12-06 | 2014-10-12 |
這意味着每個日期列的MAX以及MAX結果中GREATEST所在行的ID。
查詢,這給我帶來近到解決方案是這樣的:
SELECT
id, max(date1), max(date2), max(date3), GREATEST(
IFNULL(max(date1), 0),
IFNULL(max(date2), 0),
IFNULL(max(date3), 0)) AS maxdate
FROM table1
但ID我得到的,不是預期的一個。我怎樣才能找出哪個列有maxdate,以便我可以找出附件ID?
你嘗試子查詢?可能是那個應該工作 – Siva 2014-11-04 15:06:16
好吧,我試了很多,子查詢也是。但你必須知道我是一個絕對的SQL初學者:) – MaggusK 2014-11-04 15:23:46
你有很多專家的答案....希望你能解決你的問題 – Siva 2014-11-04 15:27:53