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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Сложный запрос с произведениями

Сообщения:  [1-5] 

 
 автор: ronin80   (28.05.2008 в 20:40)   письмо автору
 
   для: kukuikar   (27.05.2008 в 21:27)
 

во-первых всё зависит от того сколько там будет использоваться этих id

во-вторых, смотря какя структура бд (индексы и т.д.)

надо смотреть explain plan и оценивать узкие места

вообще вопрос сложный, слишком много вопросов.

   
 
 автор: kukuikar   (27.05.2008 в 21:27)   письмо автору
 
   для: ronin80   (27.05.2008 в 17:47)
 

Спасибо. Пробовал поразному но так - нет. Все работает. Спасибо еще раз.

А может есть более элегантное решение этого вопроса?
Поделитесь пожалуйста...

   
 
 автор: ronin80   (27.05.2008 в 17:47)   письмо автору
 
   для: kukuikar   (27.05.2008 в 16:46)
 

SELECT SUM(GG) FROM
(
SELECT `opt`*1 AS GG FROM `tbl` WHERE `id`='1'
UNION
SELECT `opt`*1 AS GG FROM `tbl` WHERE `id`='5'
) as union_table

union_table это псевдоним

   
 
 автор: kukuikar   (27.05.2008 в 16:46)   письмо автору
 
   для: kukuikar   (27.05.2008 в 14:12)
 

Значит с запросом разобрался так:


SELECT `opt`*1 AS GG FROM `tbl` WHERE `id`='1'
UNION
SELECT `opt`*1 AS GG FROM `tbl` WHERE `id`='5'


выдает все что мне надо.

А как мне получить сразу сумму.


SELECT SUM(GG) WHERE 
(
SELECT `opt`*1 AS GG FROM `tbl` WHERE `id`='1'
UNION
SELECT `opt`*1 AS GG FROM `tbl` WHERE `id`='5'
)


не работает.

   
 
 автор: kukuikar   (27.05.2008 в 14:12)   письмо автору
 
 

Здравствуйте.

Такая незадача... :)

Есть несколько параметров сгенерирвоанных в PHP-коде. Мне надо выполнить такой запрос результатом которого будут
набор произведений поля на число из PHP-кода.

Вот запрос неверный:

SELECT `opt`*2,`opt`*5,`opt`*15,`opt`*13 FROM `tbl` WHERE `id`='1' OR `id`='7' OR `id`='9' OR `id`='15'

Только результат не тот. Для каждого id набор получается, т.е. сколько id столько и строк. А мне надо чтобы для id=1 opt*2, для id=7 opt*5 и т.д.

И еще. Надо получить сумму произведений этого набора.

Заранее спасибо.

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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