Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Расчет суммы (двухтабличный запрос)
 
 автор: Grozniy   (24.11.2006 в 19:23)   письмо автору
 
 

Возможно не совсем точно изложу суть вопроса потому сам еще не совсем понял что именно надо, но задачу поставили такую.
Есть база данных с таблицей N выбирается строка в которой занесены цисла например 2, 4, 6, 15. есть вторая таблица в которой есть столбец ID числа от 1 до 100 и столбец Z с числами любыми, необходимо посчитать сумму чисел столбца Z но только тех строк которые принадлежат таблице N то есть 2, 4, 6, 15. если кто знает подскажите, замучался уже, идея как сделать есть, но код получается уж очень большим, так как выбирать надо много столбцов.

   
 
 автор: cheops   (24.11.2006 в 19:39)   письмо автору
 
   для: Grozniy   (24.11.2006 в 19:23)
 

Принадлежность записей второй таблице первой как определяются? Приведите дампы этих двух таблиц?

   
 
 автор: aexb   (24.11.2006 в 19:51)   письмо автору
 
   для: cheops   (24.11.2006 в 19:39)
 

Если я все правильно понял, то

<?
//Делаем запрос в первую таблицу и выбираем те самые числа 2, 4, 6, 15
$sql=mysql_query("SELECT * FROM `table_1` WHERE `id`='2' LIMIT 1");

//Сохраняем их в массив
    
$digits[]=mysql_result($sql0'field1');
    
$digits[]=mysql_result($sql0'field2');
    
$digits[]=mysql_result($sql0'field3');
    
$digits[]=mysql_result($sql0'field4');

//Для каждого элемента массива делаем запрос и выбираем нужное значение из столбца Z
//и сохраняем в массив $result
foreach ($digits as $key=>$value) {
    
$sql=mysql_query("SELECT `z` FROM `table_2` WHERE `ID`='".$value."' LIMIT 1");
    
$result[]=mysql_result($sql0);
}

//суммируем результат
$sum=array_sum($result);
?>

Мне не нравится кусок с циклом, наверняка можно какой-то хитрый запрос в базу делать, а не сервер нагружать. Но в принципе, и так позволительно.

   
 
 автор: Grozniy   (25.11.2006 в 10:47)   письмо автору
 
   для: aexb   (24.11.2006 в 19:51)
 

Спасибо, почти то что надо, кое что изменил (с массивом не люблю возиться), но идею понял. Все получилось.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования