如何在Laravel 5.x中将多个集合组合成单个集合?

时间:2016-10-30 21:47:54

标签: php mysql laravel laravel-5.3

我正在使用Laravel 5.3和mariaDB 10.1.x。

我有几个SQL查询将用于一个报表。我想使用多个查询(每个查询都不是那么简单),而不是一个复杂的单个查询用于维护目的。

我想要做的是将每个查询的结果都收集到集合格式中,并将这些结果与单个集合(如来自一个大查询的集合)结合起来。

(1)第一次查询的收集

$a = DB::table('first_name')->where(...)->join(...)->leftJoin(...)->get();

result
-----------------------
primary_key  first_name
    1           John
    2           Mary 
-----------------------

(2)从第二次查询收集。

$b = DB::table('last_name')->where(...)->join(...)->leftJoin(...)->get();

Result
-----------------------
primary_key  last_name
    1           Doe
    2           Jane 
-----------------------

(3)我想要的集合(使用primary_key组合(1)+(2))

-----------------------------------
primary_key  first_name  last_name
    1           John        Doe
    2           Mary        Jane 
-----------------------------------

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这个怎么样?不确定这是否是最好的方法:

df <- data.frame(cbind(mtcars[,1], mtcars[,2])) #mtcars[, 1:2]
colnames(df) <- c("metric", "group")
df$group <- factor(df$group)

p1 <- ggplot(data=df, aes(x=group, y=metric ) ) +
  geom_boxplot()

metric_means <- aggregate(df$metric, list(df$group), mean) 
metric_ci_95 <- aggregate(df$metric, list(df$group), function(x){1.96*sd(x)/sqrt(length(x))})
metric_mean_ci = data.frame(group=metric_means[,1],mean=metric_means[,2], ci=metric_ci_95[,2])

# plot mean
p1 <- p1 + geom_point(data=metric_means, aes(x=metric_means[,1], y=metric_means[,2]),
                      colour="red", shape=21, size=2)

#plot confidence interval
p1 <- p1 + geom_errorbar(data=metric_mean_ci, aes(ymin=mean-ci, ymax=mean+ci, x=group, y=mean),
                         color="green", width=.1)

p1

我没有看到任何辅助方法进行密钥合并,但不确定我是否已正确读取

相关问题