我有 3 个表:用户、mobile_users、油门。
- 用户:ID,电子邮件,密码,...
- mobile_users: id, user_id, ....
- 油门:id,user_id,禁止,...
这是我的代码:
$mobile_users = DB::table('mobile_users')
->join('users', 'mobile_users.user_id', '=', 'users.id')
->join('throttle', 'mobile_users.user_id', '=', 'throttle.user_id')
->where(function($where) use ($query) {
$where->where('users.first_name', 'LIKE', "%$query%")
->orWhere('users.last_name', 'LIKE', "%$query%");
})
->select(
'mobile_users.*',
'users.*',
'throttle.banned'
)
->distinct()
->orderBy('mobile_users.created_at', 'DESC')
->paginate($limit);
这会返回一些内容为空的最后一页,我只是不知道为什么,some1 可以帮助我吗?
更新
这是 dd(DB::getQueryLog()) 时的结果:
从内部连接开始。= 。哪里。
users
id
throttle
user_id
groups
id
groups
users_groups
user_id
pivot_user_id
users_groups
group_id
pivot_group_id
groups
users_groups
groups
id
users_groups
group_id
users_groups
user_id
= ?" ["bindings"]=> array(1) { [0]=> int(2) } ["time"]=> float(3) } [4]=> array(3) { ["query "]=> string(39) "select * frompayback_configs
limit 1" ["bindings"]=> array(0) { } ["time"]=> float(5) } [5]=> array(3) { ["query"]=> string(249) "从内部连接中选择 count( ) 作为聚合。= 。内连接上。= 。在哪里 ( . LIKE ? or . LIKE ?)" ["bindings"]=> array(2) { [0]=> string(2) "%%" [1]=> string(2) "%%" } ["time"]=> float(2) } [6]=> array(3) { ["query"]=> string(344) " 选择不同的。mobile_users
users
mobile_users
user_id
users
id
throttle
mobile_users
user_id
throttle
user_id
users
first_name
users
last_name
mobile_users
,users
.*,throttle
.banned
从mobile_users
内部连接users
开始mobile_users
。user_id
=users
。id
内连接throttle
上mobile_users
。user_id
=throttle
。user_id
在哪里( .LIKEusers
?first_name
或.LIKE ?)订购users
。DESC 限制 3 偏移量 0" ["bindings"]=> array(2) { [0]=> string(2) "%%" [1]=> string(2) "%%" } ["time"] => 浮动(9) } }last_name
mobile_users
created_at