您好,我的数据库结构如下:
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/