• Главная
  • » SQL
  • » Объединение SELECT из нескольких таблиц

#1 2010.01.24 12:57

WebGraf
Участник
Зарегистрирован: 2009.07.21
Сообщений: 134
Карма: 1
Профиль

Объединение SELECT из нескольких таблиц

Как объединить запросы по выводу значений таблиц понятно, а как если нужно сумму вывести?
К примеру

Код:

1
2
3
SELECT SUM(`cost`) FROM `stata` WHERE `mes`="' . $pref . '";
SELECT SUM(`cost`) FROM `stata2` WHERE `mes`="' . $pref . '";
SELECT SUM(`cost`) FROM `stata3` WHERE `mes`="' . $pref . '";

Отредактировано WebGraf (2010.01.24 12:58)

Неактивен

#2 2010.01.24 13:36

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Объединение SELECT из нескольких таблиц

UNION

Неактивен

#3 2010.01.24 16:17

WebGraf
Участник
Зарегистрирован: 2009.07.21
Сообщений: 134
Карма: 1
Профиль

Re: Объединение SELECT из нескольких таблиц

Код:

1
2
3
(SELECT SUM(`stata`.`cost`) FROM `stata` WHERE `mes`="' . $pref . '") UNION
(SELECT SUM(`stata2`.`cost`) FROM `stata2` WHERE `mes`="' . $pref . '") UNION
(SELECT SUM(`stata3`.`cost`) FROM `stata3` WHERE `mes`="' . $pref . '");

неработает в таком примере
вот если без суммы то выборка чудесно происходит

Неактивен

#4 2010.01.24 16:29

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Объединение SELECT из нескольких таблиц

должно быть ок


Вложения

Неактивен

#5 2010.01.24 16:43

WebGraf
Участник
Зарегистрирован: 2009.07.21
Сообщений: 134
Карма: 1
Профиль

Re: Объединение SELECT из нескольких таблиц

как тогда сумму вывести на страницу?
$var['SUM(`cost`)'] - не выводит ничего у меня
$var['SUM(`stata`.`cost`)'] выводит только 1 таблицы, только смысл унион отпадает

Неактивен

#6 2010.01.24 17:00

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Объединение SELECT из нескольких таблиц

можно использовать нумерованный массив, а не ассоциативный, можно в запросе указать алиас через оператор AS ( ... SUM(`stata`.`cost`) AS v FROM ....)

Неактивен

#7 2010.01.24 19:22

WebGraf
Участник
Зарегистрирован: 2009.07.21
Сообщений: 134
Карма: 1
Профиль

Re: Объединение SELECT из нескольких таблиц

Код:

1
2
3
4
5
6
7
8
$var = mysql_fetch_array(mysql_query("(SELECT SUM(`stata1`.`cost_rur`) AS cost
FROM stata1) UNION
(SELECT SUM(`stata2`.`cost_rur`) AS cost
FROM stata2) UNION
(SELECT SUM(`stata3`.`cost_rur`) AS cost
FROM stata3); "));
 
echo $var['cost'];

в чем ошибка?

Неактивен

#8 2010.01.24 20:03

Gemor
Гость

Re: Объединение SELECT из нескольких таблиц

Код:

1
2
3
4
5
(SELECT SUM(cost_rur) AS cost1 FROM stata1)
UNION
(SELECT SUM(cost_rur) AS cost2 FROM stata2)
UNION
(SELECT SUM(cost_rur) AS cost3 FROM stata3);

#9 2010.01.24 20:43

WebGraf
Участник
Зарегистрирован: 2009.07.21
Сообщений: 134
Карма: 1
Профиль

Re: Объединение SELECT из нескольких таблиц

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$week = mysql_fetch_array(mysql_query("(SELECT SUM(`cost_rur`) AS cost,
COUNT(`cost_rur`) AS kol
FROM stata1 WHERE
`msg`='" . $pref . "') UNION
(SELECT SUM(`cost_rur`) AS cost,
COUNT(`cost_rur`) AS kol
FROM stata2 WHERE
`msg`='" . $pref . "') UNION
(SELECT SUM(`cost_rur`) AS cost,
COUNT(`cost_rur`) AS kol
FROM stata3 WHERE
`msg`='" . $pref . "'); "));
 
$var = $week['cost'];

Выводит сумму из первой таблицы

Неактивен

#10 2010.01.24 21:11

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Объединение SELECT из нескольких таблиц

Ты все данные вгоняешь в переменные с именами cost и kol. Давай разным выборкам разные имена.

Неактивен

  • Главная
  • » SQL
  • » Объединение SELECT из нескольких таблиц

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.015 s