Всем привет, Мне нужно выполнить два SELECT к одной и той же таблице и получить количество уникальных посещений в hosts и количество неуникальных посещений в visits . Делаю так: PHP: $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, 1); $sql=" SELECT DATE_FORMAT(date, '%Y-%m-%d') as d, COUNT(id) as visits FROM clients_log WHERE user_id=$webmaster_id AND date BETWEEN '$date1' AND '$date2' AND site_id = 0 GROUP BY d; SELECT DATE_FORMAT(date, '%Y-%m-%d') as d, COUNT(DISTINCT(ip)) as hosts FROM clients_log WHERE user_id=$webmaster_id AND date BETWEEN '$date1' AND '$date2' AND site_id = 0 GROUP BY d; "; $stmt = $pdo->prepare($sql); $stmt->execute(); $result = $stmt->fetchAll(); if ($result) { echo '<pre>'; print_r($result); echo '</pre>'; } Но почему то в массиве вижу только visits по выбранным датам. hosts отсутствует. Мне не хочется делить это на два запроса, хочется в одном запросе получить результат.
Много запросов через PHP не исполняется, по одному норм, и, как @miketomlin написал, смотри в сторону объединений.
Спасибо, но мне бы рабочий пример моего запроса, на основе UNION. Вот это у меня не сработало( Код (Text): SELECT DATE_FORMAT(date, '%Y-%m-%d') as d, COUNT(id) as visits, COUNT(DISTINCT(ip)) as hosts FROM clients_log WHERE user_id=1046 AND date BETWEEN '2023-01-29 00:00:00' AND '2023-02-04 23:59:59' AND site_id = 0 GROUP BY d UNION SELECT DATE_FORMAT(date, '%Y-%m-%d') as d, COUNT(DISTINCT(ip)) as test_page FROM clients_log WHERE user_id=1046 AND date BETWEEN '2023-01-29 00:00:00' AND '2023-02-04 23:59:59' AND site_id = 1 GROUP BY d
У кого, кроме тебя это должно сработать/не сработать? Даже структуру таблиц не кинул, а телепаты все в отпуске, йопта. + читай сообщения, что БД выдаёт, поискуй.
Для union сигнатура ответа по каждому запросу должна быть одинаковой. Т. е. если в первом запросе есть "as visits" Во втором должно быть также. Для второго запроса аналогично.