在 laravel 5.1 中无法获取 SQL 查询

Posted

技术标签:

【中文标题】在 laravel 5.1 中无法获取 SQL 查询【英文标题】:Can't get SQL query in laravel 5.1 【发布时间】:2016-03-09 12:26:52 【问题描述】:

如何在 laravel 5.1 中获取此查询。我有模型 Menu,数据库 menus。 SQL 中的这个查询得到我想要的结果。

SELECT b.title FROM menus a, menus b WHERE a.id=b.parent_id 

同样的问题,我无法得到这个查询

SELECT m.* FROM menus m WHERE m.id in (select m2.parent_id from menus m2)

【问题讨论】:

【参考方案1】:

Laravel docs for queries 有一个你可以即兴发挥的例子:

$users = DB::table('users')
            ->join('contacts', 'users.id', '=', 'contacts.user_id')
            ->join('orders', 'users.id', '=', 'orders.user_id')
            ->select('users.*', 'contacts.phone', 'orders.price')
            ->get();

尝试使用类似的东西,注意可以use aliases:

$variable = DB::table('menus as a')
            ->join('menus as b', 'a.id', '=', 'b.parent_id')
            ->select('b.title')
            ->get();

查看How to do this in Laravel, subquery where in 以获取与where in 等效的示例。

【讨论】:

以上是关于在 laravel 5.1 中无法获取 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 5.1 迁移中使用外键

在 laravel 5.1 中获取 fullUrl

如何在 Laravel 5.1 中获取前一周的数据?

如何在 Laravel 5.1 中获取数据库中的表列表

如何使用 Laravel 5.1 在 IronMQ 中获取排队作业的数量?

将 SQL 转换为 Laravel 5.1