Посчитать количество записей в нескольких таблицах одним запросом (MySQLi)

Раздел SQL. Форум в помощь для тех кто начинает осваивать SQL. Работа с phpMyAdmin.
Аватара пользователя
Slash
Администратор
Сообщения: 2083
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 69 раз

Посчитать количество записей в нескольких таблицах одним запросом (MySQLi)

Сообщение Slash » Вс ноя 20, 2016 9:22 am

Здравствуйте.
Сегодня стояла задача посчитать количество записей в нескольких таблицах, сделать это надо было выполнив всего один запрос. В моем случаи, было три таблицы ads, sites и users, в таблице ads надо считать не все подряд, а только те, что имеют статус well. Делаю так:

Код: Выделить всё

    $sql = 'SELECT
        (SELECT COUNT(*) FROM ads WHERE status = \'well\') AS ads,
        (SELECT COUNT(*) FROM sites) AS sites,
        (SELECT COUNT(*) FROM users) AS users';
Выполнив запрос получаю массив:

Код: Выделить всё

$result = $this->db->query($sql);
$count  = $result->fetch_array(MYSQLI_ASSOC); 
Массив можно использовать так:

Код: Выделить всё

$count['ads']   # Количество записей таблицы ads
$count['sites'] # Количество записей таблицы sites
$count['users'] # Количество записей таблицы users    

Реклама

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость