2017-02-11 71 views
0

我想根據來自3頁不同的表更新日期列記錄進行排序, 我有一個followig組數據排序行的基礎上,從不同的表中3分日期列在MySQL

Table A 
    Id data updatedOn 
    1 abc 2017-02-11 09:34:40 

Table B 
    Id question updatedOn 
    1 xyz  2017-02-11 09:35:40 
    1 pqr  2017-02-11 09:40:40 

Table C 

    Id quote updatedOn 
    1 300$ 2017-02-11 09:37:40 

現在我的結果應該

Id question quote a.updatedOn  b.updatedOn   c.updatedOn 
    1 pqr  300 2017-02-11 09:34:40 2017-02-11 09:40:40 2017-02-11 09:37:40 

但結果是

Id question quote a.updatedOn  b.updatedOn   c.updatedOn 
    1 xyz  300 2017-02-11 09:34:40 2017-02-11 09:35:40 2017-02-11 09:37:40 

由於questio最近更新了pqr

我嘗試下面的查詢

SELECT a.updatedOn,b.updatedOn,c.updatedOn FROM `A` a 
left join B b on a.id= b.id 
left join C c on c.id = a.id 
group by id having a.id = 7 
order by ifnull(a.updatedOn,0) 
DESC,ifnull(b.updatedOn,0) DESC, 
    ifnull(c.updatedOn,0) DESC 

的問題是,如果我更新第一個表中的數據涉及在結果是確定的頂部,但如果我更新了第二和第三的第二次,它不會得到顯示按預期的降序排列。

此外,我嘗試上面的查詢與日期列 GREATEST函數,但沒有運氣。

請幫忙。 謝謝。

+0

那麼究竟是什麼問題? – Mureinik

+0

以表格結構顯示輸出 – denny

回答

0

您沒有使用聚合函數,所以你應該使用不同的,如經取代基和具有

SELECT distinct a.updatedOn,b.updatedOn,c.updatedOn 
FROM `A` a 
left join B b on a.id= b.id 
left join C c on c.id = a.id 
WHERE a.id = 7 
order by greatest(a.updatedOn,b.updatedOn,c.updatedOn) desc