【发布时间】:2018-01-07 12:55:05
【问题描述】:
我有以下疑问:
Ratings::join('users', 'movieratings.rated_by', '=', 'users.usr_id')
->where('rated_on', $movieId)
->orderBy('rated_at', 'desc')
->select('comment', 'rating', 'rated_as', 'rated_at', 'username')
->paginate(20);
这将获得特定电影的所有反馈评级。 但我有另一个表,其中包含特定电影的总好坏评分,唯一的问题是我无法让它同时查询该表。
如果我做另一个查询,我会简单地写:Movie::where('movie_id', $movieId)->select('total_good_ratings', 'total_bad_ratings')->get(); 这将输出例如 "22, 15" 但是否可以只从特定行中获取两列然后进行内部连接在两个表之间并分页结果?
谢谢
【问题讨论】:
-
为什么不直接使用普通的 Eloquent 关系而不是 join?这样就容易多了。
-
@apokryfos 主要是因为我不确定当我调用一些 laravel 辅助函数时会发生什么。我发现编写原始 sql 更容易,只要它们在大多数情况下都是安全的
标签: php mysql laravel eloquent inner-join