Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте. Помогите пожалуйста, нужно объединить пару запросов в один.
Запрос №1: SELECT count(id) as sites, SUM(allbonus) as allbonus FROM `bbs_projects` WHERE `rid` = '".$_SESSION['UserID']."' LIMIT 1;
Запрос №2: SELECT SUM(amount) as wmz_sum FROM `bbs_projects` WHERE `rid` = '".$_SESSION['UserID']."' AND `currency` = 'WMZ' LIMIT 1;
Запрос №3: SELECT SUM(amount) as wmr_sum FROM `bbs_projects` WHERE `rid` = '".$_SESSION['UserID']."' AND `currency` = 'WMR' LIMIT 1;
Как мне их объеденить в один? Это нужно с целью уменьшения количество запросов в базу.
Заранее спасибо.
Неактивен
ИМХО, никак Точнее "как", но это будут просто подзапросы в запросе и при этом они ни разу не ускорят общую скорость выполнения. В общем, смысла в этом нет, разве-что если действительно надо просто одним запросом выполнить вместо трёх. Объединить можно типа так:
SELECT `t1`.`field1`, `t2`.`field2`, `t3`.`field3` FROM
(SELECT `some_field` as `field1` FROM `table1` WHERE `some_field`='some_value') AS `t1`,
(SELECT `some_field` as `field2` FROM `table2` WHERE `some_field`='some_value') AS `t2`,
(SELECT `some_field` as `field3` FROM `table3` WHERE `some_field`='some_value') AS `t3`
Вроде ничего не напутал 8)
Неактивен
Еще неплохой вариант — написать хранимую процедуру, которая выполняет три запроса. Но для
этого на стороне PHP нужно, чтобы использовался mysqli (обычные функции не поддерживают
вытаскивание нескольких resultset).
Неактивен
Если задаться целью извратиться - всегда пожалуйста :-D
Неактивен