php - Laravel 查询生成器 - 联合 - 未找到列错误

标签 php mysql laravel union

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

Column not found: 1054 Unknown column '' in 'field list'

$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

如果你不添加 ('' as col3) 将会出现像你一样的错误

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

相关文章:

mysql - Sqoop Import --password-file 函数在 sqoop 1.4.4 中无法正常工作

php - 复杂的报告 PHP MySQL

mysql - 了解 wordpress the_content

php - 如何将模型函数附加到模型结果

laravel - 来自模型中的原始查询

php - Twig 默认过滤器会覆盖定义的模板变量吗?

php - 我可以在 Laravel 中急切/延迟加载属性吗?

php - 字符串上的 Laravel 5.1 文件上传 isValid()?

php - 碳日期的格式时区

php - Yii、SQL Server 查询错误