我有3个表,第一次从第二有FK,第二个有一个FK从3:Laravel-Datatables中的雄辩,select in select?
Table 1: [admin_demandas]
-------------------------
id_demanda| projec_id
-------------------------
Table 2: [admin_projec]
-------------------------
id_projec | sub_id
-------------------------
Table 3: [admin_sub]
-------------------------
id_sub | name
-------------------------
我需要的是从表3得到“名”,但与开始该表的模型1.
我是想这样的事情:
$data = AdminDemanda::select([
'id_demanda',
'admin_projec.sub_id AS sub_id',
'admin_sub.name AS name',])
->join('admin_projec', 'admin_demandas.projec_id', '=', 'admin_projec.id_projec')
->join('admin_sub', 'admin_projec.sub_id', '=', 'admin_sub.id_sub')
->get();
return Datatables::of($data)->make(true);
我已经做了我的数据表,只有1 JOIN(2台),但不知道如何做那些2 JOIN(3桌)。我得到这个错误:
[Err] 1054 - Unknown column 'admin_projec.sub_id' in 'on clause'
我应该在我的查询中修改什么? 我是否需要使用查询生成器来代替Eloquent,并使用DB :: raw()查询?
我放的代码是一个例子,第二个表有4个FK指向另一个表,有没有另一种方式来查询tead编辑模型?反正这个模型的东西会起作用吗?谢谢,我会在稍后尝试。 – pmirnd
我认为,使用模型是处理数据库关系的最佳方式。因为你只设置了一次,一切都可以随时使用。如果您更改字段名称的表名称,则只需编辑一些内容即可使其运行。如果您使用加入完整查询,则必须编辑使用此表/字段的每个页面,一旦您的应用程序变得更大,它可能会成为真正的噩梦。 – Raccoon