我正在使用Laravel查询生成器来生成联合查询。我在联合中的一个查询有3个选择字段,在联合中的其他查询有2个选择字段。所以我添加了一个空字段以匹配列数。 laravel说以下错误


  找不到列:“字段列表”中的1054未知列”


$i = 0;
foreach($sources as $key=>$value)
{
 $db = $value['db'];
 $table = $value['table'] ;
 $fields = $value['fields'];

  $join = DB::table($db.'.'.$table)
          ->whereIn($table.'.'.$table.'_sys_id',$value['values'])
          ->select($fields);

if($i <1)
{
$tagResultQuery = $join;

}
else{
$tagResultQuery->union($join);
}

$i++;
}

$result = $tagResultQuery->get();

最佳答案

因为您的列名不同,所以这里是一个示例

SELCT
    col1,
    col2,
    col3
FROM tbl_1
UNION
SELCT
    col1,
    col2,
    '' as col3
FROM tbl_2


如果您不添加(''作为col3)将像您一样错误

关于php - Laravel查询生成器-联合-找不到列错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38144913/

10-11 22:20
查看更多