我每个表都有很多记录,关系:
Purchase Order
(600条记录)有很多From
(60,000条记录)有很多manpower
(250,000条记录)。在这种情况下如何优化查询?现在显示:SQLSTATE[HY000]: General error: 1390 Prepared statement contains too many placeholders
我还需要计算所有人力的工作时间。有输入和输出时间戳。我需要计算总小时数并将它们相加为总小时数。
$purchaseOrder = PurchaseOrder::with(['form.manpower'])
->whereNotIn('status', [PurchaseOrder::INACTIVE])
->orderBy('updated_at', 'desc')
->get();
有点晚了,但无论如何……
您可以尝试以这种方式延迟(动态)加载您的关系:
PurchaseOrder::whereNotIn('status', [PurchaseOrder::INACTIVE])
->orderBy('updated_at', 'desc')
->get()
->load(['form.manpower']);
因此,只有当您询问这些关系的属性时,才会获取这些关系。