mysql - 加入表格后从数据库中选择特定数量的随机行 - Laravel 5.1

标签 mysql laravel eloquent

您好,我的数据库结构如下:

Table: articles

id | category_id(fk) | title | description | image

Table: categories

id | name

Table: domain_category

id | domain_id(fk) | category_id(fk)

现在从上面的表格。我只需要表 articles 中的 8 个随机行,其中 domain_id = $dynamic_domain_id

我试过的方法如下:

$randomArticles = Article::select("articles.*")
                        ->join('categories', 'categories.id', '=', 'articles.category_id')
                        ->join('domain_category', 'domain_category.category_id', 'categories.id')
                        ->where('domain_category.domain_id', $domain->lander_domain_id)
                        ->orderBy(DB::raw('RAND()'))->take(8)->get();

但是我遇到了一个错误并且没有得到正确的结果。提前致谢。

最佳答案

我突然想到的唯一语法错误是您在第二个 join() 函数调用中缺少一个 '=' 参数。尝试改用此查询:

$randomArticles = Article::select("articles.*")
                        ->join('categories', 'categories.id', '=', 'articles.category_id')
                        ->join('domain_category', 'domain_category.category_id', '=', 'categories.id')
                        ->where('domain_category.domain_id', $domain->lander_domain_id)
                        ->orderBy(DB::raw('RAND()'))->take(8)->get();

关于mysql - 加入表格后从数据库中选择特定数量的随机行 - Laravel 5.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35887854/

相关文章:

php - Laravel 中的位置 header

php - 为什么我在资源丰富的路由上收到 MethodNotAllowedHttpException?

php - Laravel Carbon 格式日期

php - Laravel 5 - 具有嵌套关系的 API 资源

mysql - 使用 phpmyadmin 将 csv 导入 mysql

java - 仅更新 hibernate 中对象的非空字段

php - 如何在laravel(mysql)中将obj保存在db中

Laravel 4.1 Eloquent - 使用 whereHas 的自定义连接

php - 连接两个表以获得计数

javascript - 从 javascript 内部调用 PHP 函数?