首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原始查询与select到laravel 8查询左接

原始查询与select到laravel 8查询左接
EN

Stack Overflow用户
提问于 2022-06-28 17:17:46
回答 2查看 465关注 0票数 0

我在我的laravel函数上使用原始查询,我想把它变成laravel查询生成器,但是我真的不知道如何做,我读过laravel关于高级连接子句或子查询联接的纪录片,但仍然无法弄清楚如何转换它。

原始查询:

代码语言:javascript
复制
$buku = DB::select(
        DB::raw('
        SELECT buku.*, kategory, tag
        FROM buku
        LEFT JOIN kategori_buku ON buku.id_kategori = kategori_buku.id
        LEFT JOIN detail_buku_tag ON buku.id = detail_buku_tag.id_buku
        LEFT JOIN (SELECT tag_buku.id, GROUP_CONCAT(tag) AS tag FROM tag_buku) AS tag_buku ON tag_buku.id = detail_buku_tag.id_tag
        GROUP BY buku.id')
    );
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-28 18:56:54

存在一些sql链接问题。@Ramiz Kongulov忘了按条款分割组,试试这个。

代码语言:javascript
复制
$buku = \DB::table('buku')
    ->select(['buku.*','kategory.*', 'tag.*'])
    ->leftJoin('kategori_buku', 'kategori_buku.id', '=', 'buku.id_kategori')
    ->leftJoin('detail_buku_tag', 'detail_buku_tag.id_buku', '=', 'buku.id')
    ->leftJoin(\DB::raw('(SELECT tag_buku.id, GROUP_CONCAT(tag) AS tag FROM tag_buku) AS tag_buku'),
        'tag_buku.id', '=', 'detail_buku_tag.id_tag')
    ->groupBy('buku.id')
    ->get();
票数 0
EN

Stack Overflow用户

发布于 2022-06-28 17:34:32

尝尝这个

代码语言:javascript
复制
$buku = \DB::table('buku')
->select([
    'buku.*',
    'kategory.*',
    'tag.*'
])
->leftJoin('kategori_buku', 'kategori_buku.id', '=', 'buku.id_kategori')
->leftJoin('detail_buku_tag', 'detail_buku_tag.id_buku', '=', 'buku.id')
->leftJoin(DB::raw('SELECT tag_buku.id, GROUP_CONCAT(tag) AS tag FROM tag_buku) AS tag_buku ON tag_buku.id = detail_buku_tag.id_tag GROUP BY buku.id'))
->get();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72790707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档