每个表(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