Tôi muốn chọn mọi thứ + giá trị MAX và chỉ nhận các hàng có giá trị tối đa.Xây dựng truy vấn giáo lý chọn MAX
$query = $this->createQueryBuilder('s');
$query->where('s.challenge = :challenge')->setParameter('challenge', $challenge);
$query->groupBy('s.score');
$query->getQuery();
return $query->select('s.*, MAX(s.score) AS max_score')->getQuery()->getResult();
Làm cách nào để đạt được điều này trong học thuyết? Tôi nhận được lỗi rằng * không tìm thấy thuộc tính. Tôi đã cố gắng chọn tất cả từng cái một nhưng không may mắn.
Mục tiêu là để đạt được một cái gì đó như thế này
SELECT user, challenge, whateverelse, MAX(score) FROM users_scores_table GROUP BY user_id
Xin giúp;)
DQL =/= SQL, không chắc chắn những gì bạn đang cố gắng làm ở đây. chọn ('s, ...) là đủ. – mpm
Điều này sẽ chỉ chọn tôi tối đa và không phải toàn bộ tổ chức của tôi .. Tôi đang cố gắng nhận được tất cả điểm số cao nhất duy nhất cho người dùng. – rat4m3n
Chỉ cần chọn ('s, MAX (s.score)') như @mpm được đề xuất. –