thinkphp6 连表 查询条数多的
use think\facade\Db;
$result = Db::table('users')
->join('orders', 'users.id=orders.user_id')
->field('users.id, users.name, COUNT(orders.id) as order_count')
->group('users.id')
->select();
$userCount = Db::table('users')
->count();
$result = Db::table('users')
->join('orders', 'users.id=orders.user_id')
->field('users.id, users.name, COUNT(orders.id) as order_count')
->group('users.id')
->select();
$result = Db::table('users')
->alias('u')
->leftJoin('orders o', 'u.id = o.user_id')
->field('u.id, u.name, COUNT(o.order_id) as order_count') // 使用聚合函数COUNT
->group('u.id') // 根据用户ID分组
->select();
$result = Db::table('users')
->alias('u')
->field('u.*, (SELECT COUNT(*) FROM orders o WHERE o.user_id = u.id) as order_count')
->select();
Try
浙公网安备 33010602011771号