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

Kopusha
#48211 17.02.2025 10:03

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

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

Added 1 minute later:

пробую так

		$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;");