Я создал систему голосования в php и mysql. Когда пользователь голосует за идентификатор, запись вставляется в «голосов», ссылающихся на FK media_id. Когда я затем вывести записи я использую этот запрос, чтобы получить количество голосов для каждой записи:Mysql одно для многих отношений. Порядок по количеству строк во второй таблице
$sql = "SELECT COUNT(*) FROM insta_votes WHERE media_id ='".$mediaid."'";
if ($res = $db->query($sql)) {
return $res->fetchColumn();
}
return 0;
Это прекрасно работает, но я хочу, чтобы иметь возможность сортировать результаты по количеству голосов, которые они имеют. Предпочтительно использовать только один запрос. Как я могу это достичь?
Таблицы структурированы следующим образом:
votes table
+-----------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| media_id | varchar(255) | NO | | NULL | |
| ip | varchar(20) | NO | | NULL | |
| c_time | timestamp | NO | | CURRENT_TIMESTAMP | |
| sessionid | varchar(30) | NO | | NULL | |
+-----------+--------------+------+-----+-------------------+----------------+
entries table
+---------------+--------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+-------------------+-------+
| page_id | int(11) | NO | MUL | NULL | |
| media_id | varchar(255) | NO | PRI | NULL | |
| url | varchar(255) | NO | | NULL | |
| c_time | datetime | NO | | NULL | |
| likes | int(11) | YES | | NULL | |
| deleted | tinyint(1) | NO | | 0 | |
| inserted_time | timestamp | YES | | CURRENT_TIMESTAMP | |
| numReports | int(11) | NO | | 0 | |
+---------------+--------------+------+-----+-------------------+-------+
Спасибо!
Вы пробовали 'ORDER BY'? –
Проблема в том, что я хочу получить записи в таблице записей, упорядоченной по количеству записей с этим медиа-идентификатором в таблице голосов. – Cobradelaplaya