Есть ли способ объединить несколько запросов (*) к одному? Я знаю, что мне не нужно готовить два последних запроса два раза, но это не вопрос. Я не знаю, как это сделать правильно.Как объединить несколько запросов (*)?
$sth = $this->_db->prepare('SELECT count(*) FROM posts WHERE topicid = ?');
$sth->execute(array($this->_id));
$numPosts = $sth->fetch(\PDO::FETCH_ASSOC);
$sth = $this->_db->prepare('SELECT count(*) FROM topic_activity WHERE topicid = ?');
$sth->execute(array($this->_id));
$numViews = $sth->fetch(\PDO::FETCH_ASSOC);
$sth = $this->_db->prepare('SELECT count(*) FROM topic_activity WHERE topicid = ? AND likes = 1');
$sth->execute(array($this->_id));
$numLikes = $sth->fetch(\PDO::FETCH_ASSOC);
$sth = $this->_db->prepare('SELECT count(*) FROM topic_activity WHERE topicid = ? AND likes = -1');
$sth->execute(array($this->_id));
$numDislikes = $sth->fetch(\PDO::FETCH_ASSOC);
Ничего себе. Genius. Zeige Datensätze 0 - 0 (1 insgesamt, Die Abfrage dauerte 0,0021 Sekunden) – user2429266
3 Запросы. Каждый из них будет работать в 0,0003s. Это решение принимает 0,0021. В этом случае все еще лучше, чем несколько одиночных запросов? – user2429266
Трудно сказать; Я удивлен, узнав, что их комбинация занимает гораздо больше времени. Какой подход лучше всего ... не знаю; Я думаю, это зависит от того, сколько накладных расходов в вашей программе запускать 3 запроса и получать 3 значения один за другим; против выполнения всего 1 запроса, но с немедленными результатами. – deroby