【发布时间】:2015-10-20 04:21:47
【问题描述】:
我在 mysql 查询中动态创建了两列。它们应该看起来像这样。
+------------------+
|Month | toOrder|
+-------------------
|Nov-2014 |2014-11 |
--------------------
|Dec-2014 |2014-12 |
--------------------
|Jan-2015 |2015-01 |
--------------------
|Feb-2015 |2015-02 |
--------------------
|Mar-2015 |2015-03 |
--------------------
|Apr-2015 |2015-04 |
--------------------
|May-2015 |2015-05 |
--------------------
|Jun-2015 |2015-06 |
--------------------
|Jul-2015 |2015-07 |
--------------------
|Aug-2015 |2015-08 |
--------------------
|Sep-2015 |2015-09 |
--------------------
|Oct-2015 |2015-10 |
+------------------+
我正在使用这个查询
SELECT *
FROM (SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 11 MONTH), '%b-%Y') as Month UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 10 MONTH), '%b-%Y') as Month UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 9 MONTH), '%b-%Y') as Month UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 8 MONTH), '%b-%Y') as Month UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 7 MONTH), '%b-%Y') as Month UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 6 MONTH), '%b-%Y') as Month UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 5 MONTH), '%b-%Y') as Month UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 4 MONTH), '%b-%Y') as Month UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 3 MONTH), '%b-%Y') as Month UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 2 MONTH), '%b-%Y') as Month UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 1 MONTH), '%b-%Y') as Month UNION
SELECT DATE_FORMAT(now(), '%b-%Y') as Month) AS Months
LEFT JOIN
(SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 11 MONTH), '%Y-%m') as toOrder UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 10 MONTH), '%Y-%m') as toOrder UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 9 MONTH), '%Y-%m') as toOrder UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 8 MONTH), '%Y-%m') as toOrder UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 7 MONTH), '%Y-%m') as toOrder UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 6 MONTH), '%Y-%m') as toOrder UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 5 MONTH), '%Y-%m') as toOrder UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 4 MONTH), '%Y-%m') as toOrder UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 3 MONTH), '%Y-%m') as toOrder UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 2 MONTH), '%Y-%m') as toOrder UNION
SELECT DATE_FORMAT(DATE_SUB(now(), INTERVAL 1 MONTH), '%Y-%m') as toOrder UNION
SELECT DATE_FORMAT(now(), '%Y-%m') as toOrder) AS toOrders
ON TRUE = TRUE
但我收到的输出与我的预期不同。
+------------------+
|Month | toOrder|
+-------------------
|Nov-2014 |2014-11 |
--------------------
|Dec-2014 |2014-11 |
--------------------
|Jan-2015 |2014-11 |
--------------------
|Feb-2015 |2014-11 |
--------------------
|Mar-2015 |2014-11 |
--------------------
|Apr-2015 |2014-11 |
--------------------
|May-2015 |2014-11 |
--------------------
|Jun-2015 |2014-11 |
--------------------
|Jul-2015 |2014-11 |
--------------------
|Aug-2015 |2014-11 |
--------------------
|Sep-2015 |2014-11 |
--------------------
|Oct-2015 |2014-11 |
--------------------
|Nov-2014 |2014-12 |
--------------------
|Dec-2014 |2014-12 |
--------------------
|Jan-2015 |2014-12 |
--------------------
|Feb-2015 |2014-12 |
--------------------
|Mar-2015 |2014-12 |
--------------------
|Apr-2015 |2014-12 |
--------------------
|May-2015 |2014-12 |
--------------------
|Jun-2015 |2014-12 |
--------------------
|Jul-2015 |2014-12 |
--------------------
|Aug-2015 |2014-12 |
--------------------
|Sep-2015 |2014-12 |
--------------------
|Oct-2015 |2014-12 |
--------------------
|Nov-2014 |2015-01 |
+------------------+
我正在使用“toOrders”列,以便稍后使用我将来拥有的另一个 LEFT JOIN 执行 ORDER BY。
【问题讨论】:
-
欢迎堆栈溢出。在这里实际提出问题很重要。你有两个重要的元素:1)我想要这个。 2)我试过这个。但是你没有 3) 但它产生的不是我想要的。
-
@Ollie 感谢您的评论,我将在我的问题中添加第三个元素以获得完整的问题。