Mysql 当我回答问题并返回并添加到子查询时,我没有注意到排序依据。使用适当的索引,这可能是一个好方法,尽管编辑中的第一个查询可能具有最佳性能。 SELECT `users`.`id`, `users`.`username`, `users`.`email`, `u
当我回答问题并返回并添加到子查询时,我没有注意到排序依据。使用适当的索引,这可能是一个好方法,尽管编辑中的第一个查询可能具有最佳性能。Mysql 当我回答问题并返回并添加到子查询时,我没有注意到排序依据。使用适当的索引,这可能是一个好方法,尽管编辑中的第一个查询可能具有最佳性能。 SELECT `users`.`id`, `users`.`username`, `users`.`email`, `u,mysql,sql,group-by,Mysql,Sql,Group By,当我回答问题并返回并添加到子查询时,我没有注意到排序依据。使用适当的索引,这可能是一个好方法,尽管编辑中的第一个查询可能具有最佳性能。 SELECT `users`.`id`, `users`.`username`, `users`.`email`, `users`.`photo`, `users`.`rating` FROM `pool_details` JOIN `users` ON `users`.`id` = `pool_details`.`captain_id` WHERE `pool
SELECT `users`.`id`, `users`.`username`, `users`.`email`, `users`.`photo`, `users`.`rating`
FROM `pool_details`
JOIN `users` ON `users`.`id` = `pool_details`.`captain_id`
WHERE `pool_details`.`pool_type` =0
AND `pool_details`.`pool_close` > '2020-01-02 18:39:42'
GROUP BY `pool_details`.`captain_id`
ORDER BY `pool_details`.`members_count` DESC
LIMIT 20
SELECT users.id, users.username, users.email,users.rating,pool_details.members_count,pool_details.pool_type,pool_details.pool_close
FROM pool_details
JOIN users ON users.id = pool_details.captain_id
WHERE pool_details.pool_type = 0 AND pool_details.pool_close > '2020-01-02 18:39:42'
ORDER BY pool_details.members_count DESC;
//GROUP BY `pool_details`.`captain_id`
+----+----------+--------------------------+--------+---------------+-----------+---------------------+
| id | username | email | rating | members_count | pool_type | pool_close |
+----+----------+--------------------------+--------+---------------+-----------+---------------------+
| 13 | Ronaldo | pulisicblues07@gmail.com | 4.6 | 100 | 0 | 2020-01-04 03:00:00 |
| 13 | Ronaldo | pulisicblues07@gmail.com | 4.6 | 100 | 0 | 2020-01-03 23:30:00 |
| 13 | Ronaldo | pulisicblues07@gmail.com | 4.6 | 100 | 0
...
| 13 | Ronaldo | pulisicblues07@gmail.com | 4.6 | 0 | 0 | 2020-01-03 00:00:00 |
| 13 | Ronaldo | pulisicblues07@gmail.com | 4.6 | 0 | 0 | 2020-01-03 00:30:00 |
| 13 | Ronaldo | pulisicblues07@gmail.com | 4.6 | 0 | 0 | 2020-01-04 21:30:00 |
| 13 | Ronaldo | pulisicblues07@gmail.com | 4.6 | 0 | 0 | 2020-01-03 03:00:00 |
+----+----------+--------------------------+--------+---------------+-----------+---------------------+
28 rows in set (0.00 sec)
SELECT DISTINCT users.id, users.username, users.email,users.rating
FROM pool_details
JOIN users ON users.id = pool_details.captain_id
WHERE pool_details.pool_type = 0 AND pool_details.pool_close > '2020-01-02 18:39:42';
+----+----------+--------------------------+--------+
| id | username | email | rating |
+----+----------+--------------------------+--------+
| 5 | wheel | wheel@boxpik.com | NULL |
| 13 | Ronaldo | pulisicblues07@gmail.com | 4.6 |
+----+----------+--------------------------+--------+
2 rows in set (0.00 sec)
<= This shows the users individually ... but it's *NOT* ordered by "members_count".
SELECT u.*
FROM users u
WHERE EXISTS (SELECT 1
FROM pool_details pd
WHERE pd.captain_id = u.id AND
pd.pool_type = 0 AND
pd.pool_close > '2020-01-02 18:39:42'
)
ORDER BY (SELECT MAX(pd2.members_count)
FROM pool_details pd2
WHERE pd2.captain_id = u.id AND
pd2.pool_type = 0 AND
pd2.pool_close > '2020-01-02 18:39:42'
) DESC
LIMIT 20
SELECT u.*,
(SELECT MAX(pd2.members_count)
FROM pool_details pd2
WHERE pd2.captain_id = u.id AND
pd2.pool_type = 0 AND
pd2.pool_close > '2020-01-02 18:39:42'
) as max_members_count
FROM users u
HAVING max_member_count IS NOT NULL
ORDER BY max_member_count DESC
LIMIT 20
SELECT u.*
FROM users u JOIN
(SELECT pd2.captain_id, MAX(pd2.members_count) as max_member_count
FROM pool_details pd2
WHERE pd2.pool_type = 0 AND
pd2.pool_close > '2020-01-02 18:39:42'
) pd
ON pd.captain_id = u.id
ORDER BY max_member_count DESC
LIMIT 20l
SELECT `users`.`id`, `users`.`username`, `users`.`email`, `users`.`photo`, `users`.`rating`
FROM `pool_details`
JOIN `users` ON `users`.`id` = `pool_details`.`captain_id`
WHERE `pool_details`.`pool_type` =0
AND `pool_details`.`pool_close` > '2020-01-02 18:39:42'
GROUP BY `pool_details`.`captain_id`
ORDER BY `pool_details`.`members_count` DESC
LIMIT 20
$this->db->select('users.id,users.username,users.email,users.photo,users.rating');
$this->db->from('pool_details');
$this->db->join('users','users.id = pool_details.captain_id');
$this->db->where('pool_details.pool_type',0);
$this->db->where('pool_details.pool_close >',$now);
$this->db->order_by('MAX(pool_details.members_count)','DESC'); // <-- Added "MAX()"
$this->db->group_by('pool_details.captain_id');
$this->db->limit(20, 0);
$query = $this->db->get()->result();