每個表(table1 & table2)都有自己的DATETIME字段。
我試圖捕捉兩個表的id,並按他們的DATETIME字段排序。MySQL聯合查詢,按2個變量排序
實施例:
Table 1 Table 2
------------ -------------
id | datetime1 id | table1id | datetime2
------------------------ -----------------------
1 | 2014-09-21 20:31:26 1 | 2 | 2014-09-21 20:31:29
2 | 2014-09-21 20:31:27 2 | 3 | 2014-09-21 20:31:30
3 | 2014-09-21 20:31:28
Table 3
------------
id | user
------------------------
2 | phil
3 | nathalie
我的輸出不與此查詢正確排序:
SELECT *
FROM (
SELECT
1 AS selection,
table1.id, table1.datetime1,
table2.datetime2
table3.user
FROM Table1
LEFT OUTER JOIN table2
ON table1.id = table2.table1id
LEFT OUTER JOIN table3
ON table1.id = table3.id
UNION ALL
SELECT
2 AS selection,
table1.id, table1.datetime1,
table2.datetime2
table3.user
FROM Table1
INNER JOIN table2
ON table1.id = table2.table1id
INNER JOIN table3
ON table1.id = table3.id
) AS query
ORDER BY table1.datetime1 DESC, table2.datetime2 DESC
期望的數據:
從表2 ID:2,1,
從表1 id:3,2,1
So:2,1,3,2,1
////編輯
對於那些可能需要長時間和複雜的MySQL請求而苦惱的人,請在PhpmyAdmin嘗試!它會告訴你錯誤!
////編輯
爲什麼你有一個笛卡爾積呢?是故意的嗎? – zerkms 2014-09-21 23:58:30
問題已被編輯。 – gr3g 2014-09-22 00:29:36
請根據您的樣品數據提供所需的結果。 – 2014-09-22 01:15:45