im изучая команды Mysql и методы объединения нескольких запросов, поэтому, чтобы получить эту цель, теперь мне нужно объединить эти запросы:
list($TotalVisitsToday) = $db->sql_fetchrow($db->sql_query("SELECT COUNT(DISTINCT ip_address) FROM table_iptracking WHERE `date_time` between '$yesterday' and '$today' "));
list($TotalVisitsYesterday) = $db->sql_fetchrow($db->sql_query("SELECT COUNT(DISTINCT ip_address) FROM table_iptracking WHERE `date_time` between '$yesterday_1' and '$yesterday' "));
list($TotalPVisitsToday) = $db->sql_fetchrow($db->sql_query("SELECT count(ipid) FROM table_iptracking WHERE `date_time` between '$yesterday' and '$today'"));
list($TotalPVisitsYesterday) = $db->sql_fetchrow($db->sql_query("SELECT count(ipid) FROM table_iptracking WHERE `date_time` between '$yesterday_1' and '$yesterday'"));
list($TotalCrawlers) = $db->sql_fetchrow($db->sql_query("SELECT count(ipid) FROM table_iptracking WHERE hostname LIKE '%crawl%' "));
Я не знаю, как смешать вышеуказанные строки!
Я не уверен в вашей конечной цели, но если вы просто хотите ее в одном запросе, вы можете сделать это следующим образом:
SELECT
(SELECT COUNT(DISTINCT ip_address) FROM table_iptracking WHERE 'date_time' between '$yesterday' and '$today') COUNT1,
(SELECT COUNT(DISTINCT ip_address) FROM table_iptracking WHERE 'date_time' between '$yesterday_1' and '$yesterday') COUNT2,
(SELECT COUNT(ipid) FROM table_iptracking WHERE 'date_time' between '$yesterday' and '$today') COUNT3,
(SELECT COUNT(ipid) FROM table_iptracking WHERE 'date_time' between '$yesterday_1' and '$yesterday') COUNT4,
(SELECT COUNT(ipid) FROM table_iptracking WHERE hostname LIKE '%crawl%') COUNT5
(вы можете опустить функцию FROM caluse в MySQL)
Вы можете сформировать инструкцию SQL в UNION, что-то вроде...
SELECT COUNT(DISTINCT ip_address)
FROM table_iptracking
WHERE `date_time` between '$yesterday' and '$today'
UNION
SELECT COUNT(DISTINCT ip_address)
FROM table_iptracking
WHERE `date_time` between '$yesterday_1' and '$yesterday'
UNION
SELECT count(ipid)
FROM table_iptracking
WHERE `date_time` between '$yesterday' and '$today'
UNION
SELECT count(ipid)
FROM table_iptracking
WHERE `date_time` between '$yesterday_1' and '$yesterday'
UNION
SELECT count(ipid)
FROM table_iptracking
WHERE hostname LIKE '%crawl%'
Я не могу сказать, что я бы порекомендовал это. Результирующий набор, в котором разные строки означают разные вещи, скорее всего, окажется сложным в долгосрочной перспективе.