【发布时间】:2022-07-13 21:29:54
【问题描述】:
美好的一天,我正在尝试用 eloquent 进行此查询,但我无法使其工作
我在 SQL Server 中有 2 个查询模型,它们是不同的数据库
1 用于 laravel 用户和配置
还有另一个我想查询仓库库存的 SAP BUSINESS ONE 数据库
在我有用户身份验证的地方,它与其他数据库无关,我只想从 sap 中查阅数据数据
但我想使用备用数据库中的几个表
我已经做了一个,但是它重复了关于商店数量等的数据。另一个是失败
最后一个是我需要的查询
如果你能帮助我,我将不胜感激
第一个模型
class Almacen extends Model
{
use HasFactory;
Public function relaciona()
{
return $this->belongsToMany('App\Models\Stock');
}
protected $connection = 'sqlsrv2';
protected $table = 'OITW';
}
第二个模型
class Stock extends Model
{
use HasFactory;
Public function relacions()
{
return $this->belongsToMany(Almacen::class);
}
protected $connection = 'sqlsrv2';
protected $table = "OITM";
}
对我有用但重复数据查询是从控制器发出的
$Stock = Stock::select(
'OITM.ItemCode',
'OITM.ItemName',
'OITM.OnHand',
'OITW.WhsCode',
'OITM.SalUnitMsr'
/* ,'OBTN.ExpDate' */
)
//->crossJoin('OBTN')
->crossJoin('OITW')
//->groupBy('OITM.ItemCode')
//->select('OITM.ItemCode','OITM.Itemname','OITM.OnHand')
->where('OITW.ItemCode','=',Almacen::raw('OITM.ItemCode'))
//->where('OITW.WhsCode',/* '=', *//* '01', */'01')
//->where('OITM.OnHand','>',0.00)
//->where('OBTN.ExpDate','=' ,'2022-08-08')
-> get();
return view('stock.index', compact('Stock'));
正确查询
SELECT
T0.[WhsCode],
T1.[WhsName],
T0.[OnHand],
T2.[ItemCode],
T2.[ItemName]
FROM
OITW T0
INNER JOIN
OWHS T1 ON T0.[WhsCode] = T1.[WhsCode]
INNER JOIN
OITM T2 ON T0.[ItemCode] = T2.[ItemCode]
ORDER BY T0.[WhsCode]
【问题讨论】: