【问题标题】:How to write this (left join, and on ) in Laravel 5.8?如何在 Laravel 5.8 中写这个(左连接和上)?
【发布时间】:2019-12-20 17:30:56
【问题描述】:

我无法在 Laravel 查询生成器中编写查询,可以帮助我吗?

我尝试写但显示很多错误。

select tb.id, `tb`.insert,
   `tb`.update,
   `tb`.delete,
   `tb`.list,
   `permissions`.`name`,
   `permissions`.`id` as permission_id
   from  `permissions`
   left join (select * from `role_permissions` where `role_permissions`.`role_id` = ' . $id . ') tb on `permissions`.id = tb.permission_id
        order by `permissions`.`id` asc'

【问题讨论】:

  • Line 8: 您忘记在tb 后面添加as。此外,子选择只能从其中返回一列,因此对于希望从模型表返回的每一列,您都需要一个子选择。
  • 你到底尝试了什么?给出了哪些错误消息?

标签: php mysql laravel-5


【解决方案1】:

正如我在评论中所写:

Line 8: 你忘了在tb 后面添加as。此外,子选择只能从其中返回一列,因此对于希望从模型表返回的每一列,您都需要一个子选择。

尝试在此处使用此代码:

select tb.id,
    `tb`.insert,
    `tb`.update,
    `tb`.delete,
    `tb`.list,
    `ps`.`name`,
    `ps`.`id` as permission_id
    from  `permissions` as ps
    left join (select `permission_id` from `role_permissions` where `role_permissions`.`role_id` = ' . $id . ') as tb on `ps`.id = tb.permission_id
    order by `ps`.`id` asc'

此代码适用于纯 PHP。 Laravel 使用“特殊”符号。 如何在 Laravel 中编写简单的 SQL 查询,您可以看到 herehere

【讨论】:

    猜你喜欢
    • 2015-10-19
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    • 2019-10-14
    • 2014-09-29
    • 1970-01-01
    • 2018-08-08
    • 2015-01-12
    相关资源
    最近更新 更多