问题
我有一张儿童桌:
+------+------------+------------+
| Name | Date_A | Date_B |
+------+------------+------------+
| John | 2017-08-13 | 2017-08-14 |
| Mary | 2017-08-12 | 2017-08-15 |
+------+------------+------------+
我想得到这个结果:
+------+------------+
| Name | Date |
+------+------------+
| Mary | 2017-08-12 |
| John | 2017-08-13 |
| John | 2017-08-14 |
| Mary | 2017-08-15 |
+------+------------+
研究
我已经搜索了几个小时了,我所能找到的只是复杂的行拆分,其中包含将多行合并为一行的函数或解决方案,但这与我的问题完全相反。
我一直在研究使用UNION ALL、GROUP BY、ORDER BY、CONNECT BY和INNER JOIN的解决方案,但没有一个符合我的需要。
我确信解决方案很简单,但找不到正确的查询!
笔记
查询必须包含简单的soql,并且只调用数据库一次才能使其工作。
编辑:SOQL不支持UNION关键字很遗憾:(
编辑:解决方案
使用SOQL似乎无法解决这个问题,只能发出多个请求并手动合并结果。
对于SQL,我们只需要使用UNION(如下所示),但SOQL目前不支持这种方法。
最佳答案
一个选项使用UNION
:
SELECT Name, Date_A AS Date
FROM yourTable
UNION ALL
SELECT Name, Date_B
FROM yourTable
这里的技巧是将两个日期列(及其相关联的名称)堆叠在一起。
关于mysql - SOQL-从具有多个日期列的行返回具有一个日期列的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45732850/