您好我的数据库结构如下:
表:文章
id | category_id(fk) | title | description | image
表:类别
id | name
表:domain_category
id | domain_id(fk) | category_id(fk)
现在来自上面的表格。我只需要表文章中 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();
但是我收到了一个错误而没有得到正确的结果。提前谢谢。
答案 0 :(得分:2)
向我跳出的唯一语法错误是您在第二个'='
函数调用中缺少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();