Php SQLSTATE[42000]:语法错误或访问冲突:1064-与不同的表连接
我试着用laravel编写代码:Php SQLSTATE[42000]:语法错误或访问冲突:1064-与不同的表连接,php,laravel,multiple-join-rows,Php,Laravel,Multiple Join Rows,我试着用laravel编写代码: $software = $row['DisplayName0']; $equipo = $row['Netbios_Name0']; //echo $software ."</br>"; $sqlconsulta2= "select DISTINCT NOMSOF, TIPLICSOF, TIPIMASOF, IDEMP, NOMEMP, APPEMP, APMEMP from equ,emp LEFT JOIN sof ON sof.NOMSOF
$software = $row['DisplayName0'];
$equipo = $row['Netbios_Name0'];
//echo $software ."</br>";
$sqlconsulta2= "select DISTINCT NOMSOF, TIPLICSOF, TIPIMASOF, IDEMP, NOMEMP, APPEMP, APMEMP from equ,emp
LEFT JOIN sof
ON sof.NOMSOF = '$software'
where IDEEQU = '$equipo' and IDEEMP = IDEMP and pueemp = 'Empleado'";
有人能帮我吗?
谢谢。$home->pull()方法将返回illumb\Support\Collection
相反,您必须使用$home->get($key)您应该首先使用
连接
,然后使用where
子句,还应该使用get()
你应该知道:
pluck()
检索给定键的所有值
get()
返回给定键处的项。如果密钥不存在,
返回null
因此,您可以在where()
中使用pluck
,但不能在join中的on
子句中使用它,最好使用get()
因此,这里:
->join('sof','NOMSOF', '=', $home->pluck('DisplayName0'))
您正在做的事情类似于:
...
INNER JOIN sof ON nomsof = ['item1', 'item2']
另外,我认为你应该这样做:
->join('sof','sof.NOMSOF', '=', 'equ.SomeID')
$home变量包含什么$home->PULLC将返回数组,因此问题在于。$home=DB::connection('sqlsrv')->table('v_R_System_valid')->select('v_R_System_valid.Netbios_Name0','v_ADD_REMOVE_PROGRAMS.DisplayName0','v_ADD_REMOVE_PROGRAMS.Version0','v_ADD_REMOVE_PROGRAMS.InstallDate0')->join('v_ADD_REMOVE_PROGRAMS'、'v_R_System_valid.ResourceID'、'v_ADD_REMOVE_PROGRAMS.ResourceID')->其中('v_R_System_valid.Netbios_Name0'、'='、'DMXL3211')->其中('v_ADD_REMOVE_PROGRAMS.DisplayName0'、'','')->orderBy('v_R_System_valid.Netbios_Name0'、'ASC')->独特();
...
INNER JOIN sof ON nomsof = ['item1', 'item2']
->join('sof','sof.NOMSOF', '=', 'equ.SomeID')