Forums / National / Russian / Тех. поддержка / Вопрос про большую выборку в sql

Kopusha
#48211 2025-02-17 10:03

для каждого конкретного пользователя? для юзера 1 одни списки для юзера 2 (у него другой список друзей) другие и тд

и это выборка первых 30 записей, после почти сразу +30 инфинитскроллом и так далее

Added 1 minute later:

пробую так

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$db->exec("
    CREATE TEMPORARY TABLE temp_friends (
        friend_id INT PRIMARY KEY
    ) ENGINE=MEMORY;
");
if (!empty($friends_ids)) {
    $placeholders = implode(',', array_fill(0, count($friends_ids), '?'));
    $stmt = $db->prepare("INSERT INTO temp_friends (friend_id) VALUES ($placeholders)");
    $stmt->execute($friends_ids);
}      
         
// Запрос с временной таблицей
$totalitems = $db->query("SELECT COUNT(*)
    FROM $db_stories AS f
    LEFT JOIN $db_users AS u ON u.user_id=f.item_userid
    LEFT JOIN temp_friends tf ON tf.friend_id = f.item_userid
    $join_condition
    " . $where . "
    $where_condition
    $where_friends
")->fetchColumn();
 
$db->exec("DROP TEMPORARY TABLE IF EXISTS temp_friends;");