我有两个连接,'mysql'和'mysql2'托管在两个不同的盒子上。Laravel中查询跨两个连接的最有效方法
在'mysql'上有一个名为'account'的表,在'mysql2'上有一个名为'payments'的表,它使用PayPal IPN接受付款。
我使用名为'付款'的模型从'mysql2'中提取数据,并且'payment'中有一个名为'custom'的字段,其中包含谁进行了PayPal付款的用户ID。我想以某种方式'链接'这两个,所以我可以拉付款人的用户名。
我相信leftJoin不会在这种情况下工作,因为它跨越两个连接,Eloquent的关系方法是否有效?我曾尝试使用它们无济于事。
我的查询,像这样:
$top_donators = Payment::selectRaw('month(created_at) as month, year(created_at) as year, sum(mc_gross) as amount, custom')
->groupBy('year', 'month', 'custom')
->orderBy('amount','desc')
->get();
用户模型关系
public function payment()
{
return $this->hasMany('Payment', 'custom', 'id');
}
支付模型关系
public function user() {
return $this->belongsTo('User', 'id');
}
是不是更可行的使用同一个数据库的两个表? – Sacha 2014-09-03 11:24:39
这可能是肯定的;但不幸的是不可能。用户数据库是一个在强大的机器上托管的游戏的帐户,并且外部托管的网站是支付的地方。上次我们尝试在外部托管我们的网站,而不是本地主机,它以蜗牛速度运行:x – user2087032 2014-09-03 11:31:24