Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: SQL работа с 2-мя табл.  (Прочитано 785 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mouserok

  • Автор темы
  • Активист
  • *
  • Сообщений: 326
    • Просмотр профиля
SQL работа с 2-мя табл.
« : 16 Августа 2010, 11:19:05 »
как сделать чтоб вычитать значение поля одной табл. из значения поля др. поля и вывести в табл.

то есть $DBS_Date_last-$DBS_Date_first и полученное значение каждого поля подставить в конец табл.

select DBS_Free from oper..DB_space where DBS_Name = 'SRV' and DBS_Date = '20100812'
select DBS_Free from oper..DB_space where DBS_Name = 'SRV' and DBS_Date = '20100811'


каждый из них вернет по табл.
табл. будет различаться только датой и данными за определенную дату
нужно взять табл.№1 и поле по каждой строке отнять от табл.№2
и вывеси данные из табл.#1 (20100812) но + одно поле которое будет содержать результат


$q_first = sybase_query ("select * from oper..DB_space where DBS_Name = '$DBS_Names' and DBS_Date = '$DBS_Date_first'", $conn);

$q_last = sybase_query ("select * from oper..DB_space where DBS_Name = '$DBS_Names' and DBS_Date = '$DBS_Date_last'", $conn);

while ($row = sybase_fetch_assoc($q_last))
{
     
     $table .= "<tr>
";
     
     $table .= "<td>".$row['DBS_Name']."</td>
";
     $table .= "<td>".$row['DBS_DB']."</td>
";
     $table .= "<td>".$row['DBS_Total']."</td>
";
     $table .= "<td>".$row['DBS_Free']."</td>
";
     
     $table .= "</tr>
";
}

$table .= "</table>
";

echo $table;

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: SQL работа с 2-мя табл.
« Ответ #1 : 16 Августа 2010, 14:42:26 »
че то я не понимаю в чем у Вас проблема то!
Вы не знаете как вычитать? Или не знаете как преобразовать строковый тип данных в численный? Или не знаете как вывод значения сделать? Или Вы ничего из этого не знаете? Что не получается? Что делали? Что пробовали? Какие ошибки получили?

Оффлайн mouserok

  • Автор темы
  • Активист
  • *
  • Сообщений: 326
    • Просмотр профиля
Re: SQL работа с 2-мя табл.
« Ответ #2 : 16 Августа 2010, 14:54:11 »
вопрос не в арифметической сложности ... а том как это в табл. вывести то есть

три поля от таблицы №1 и плюс одно поле (по каждой строке поле табл.№1 - поле табл.№2)

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: SQL работа с 2-мя табл.
« Ответ #3 : 16 Августа 2010, 15:43:06 »
все равно я не понимаю в чем состоит сложность данной процедуры
у Вас есть переменные, складывать/вычитать Вы их умеете
не хватает знаний html чтоли?

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6847
    • Просмотр профиля
Re: SQL работа с 2-мя табл.
« Ответ #4 : 16 Августа 2010, 16:08:21 »
Владимир, не ты один не понял, что ему надо... или у нас с понимаем плохо или у чела с объяснением...

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: SQL работа с 2-мя табл.
« Ответ #5 : 16 Августа 2010, 16:18:06 »
Владимир, не ты один не понял, что ему надо... или у нас с понимаем плохо или у чела с объяснением...
м-дя, телепаты нынче уже не те ;)

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: SQL работа с 2-мя табл.
« Ответ #6 : 16 Августа 2010, 16:24:18 »
М.б., это имеется ввиду
$q_first = sybase_query ("select * from oper..DB_space where DBS_Name = '$DBS_Names' and DBS_Date = '$DBS_Date_first'", $conn);

$q_last = sybase_query ("select * from oper..DB_space where DBS_Name = '$DBS_Names' and DBS_Date = '$DBS_Date_last'", $conn);

while ($row = sybase_fetch_assoc($q_last))
{
     $row2 = sybase_fetch_assoc($q_first );
...

}
...

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: SQL работа с 2-мя табл.
« Ответ #7 : 17 Августа 2010, 00:59:34 »
Несколько вариантов того, что ТС имел ввиду. Насколько я понял, можно решить с помощью  арифметических операций и JOIN в самом SQL:

SELECT
t1.id,
t1.field1 as t1_field1,
t1.field2 as t1_field2,
t2.field1 as t2_field1,
t2.field2 as t2_field2,
t2.field1 - t1.field1 as field1,
t2.field2 - t1.field2 as field2
FROM `table1` t1
INNER JOIN `table2` t2 on t1.mydate = t2.mydate

http://www.mysql.ru/docs/man/Arithmetic_functions.html
http://www.mysql.ru/docs/man/JOIN.html

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: SQL работа с 2-мя табл.
« Ответ #8 : 17 Августа 2010, 08:01:05 »
Объединение в одном sql выборки из 2 таблиц - чистое SQL решение.
Большинство людей умеют выбирать только  из одной таблицы.

 

Страница сгенерирована за 0.05 секунд. Запросов: 26.