我在使用laravel 5.2中的unionAll()
从多个表中选择特定字段时遇到问题。
这是我正在做的一个例子:
$test1 = \DB::table('test1')->select('test1.first as example', 'test1.timestamp')->orderBy('timestamp', 'desc');
$test2 = \DB::table('test2')->select('test2.second as example2', 'test2.timestamp')->orderBy('timestamp', 'desc');
$test3 = \DB::table('test3')->select('test3.third as example3', 'test3.timestamp')->orderBy('timestamp', 'desc');
$testArray = $test1->unionAll($test2)->unionAll($test3)->get()->toArray();
所以在这个例子中它将返回一个包含一堆结果的数组,这个问题在创建数组时出现。
每个子数组的键都是示例,而不是第一个表结果的示例,第二个表结果的example2和第三个表结果的example3。
我需要使用有效的密钥返回,例如:
[{"example: test1", "timestamp: 11-22-33"}{"example2: test2", "timestamp: 11-22-33"}{"example3: test3", "timestamp: 11-22-33"}]
但正如我所说,我的union语句似乎只返回所有子数组的第一个示例和时间戳键,如下所示:
[{"example: test1", "timestamp: 11-22-33"}{"example: test2", "timestamp: 11-22-33"}{"example: test3", "timestamp: 11-22-33"}]