Laravel Query Builder使用join()查询的结果

时间:2019-06-18 05:33:08

标签: laravel laravel-query-builder

以下查询工作正常,但问题在于它在输出结果中提供事件表的ID而不是任务表的ID。

Task::join('events', function ($join) {
    $join->on('events.task_id', '=', 'tasks.id')
        ->where('events.event_type', '=', 'Task')
        ->where('events.task_stage', '!=', 'assigned');
})->select('tasks.*')
->get();

2 个答案:

答案 0 :(得分:2)

尝试一下,应该可以工作

->select('*', 'tasks.id as taskID')->get();

这是因为可能任务和事件表都具有id字段。因此,您需要使用单独的查询来指定ID。

答案 1 :(得分:2)

尝试这个

在此处使用mysql别名

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css">

<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<script src="https://www.amcharts.com/lib/4/core.js"></script>
<script src="https://www.amcharts.com/lib/4/maps.js"></script>
<script src="https://www.amcharts.com/lib/4/geodata/indiaLow.js"></script>
<script src="https://www.amcharts.com/lib/4/themes/animated.js"></script>
<div id="list"></div>
<div id="chartdiv"></div>