Реклама на сайте Advertise with us

Mysql запрос

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 09/11/08 в 17:18       Ответить с цитатойцитата 

имеется поле price в таблице table1
значение поля может быть как цена в рублях, так и в баксах
имеется поле valute в таблице table2
талицы связаны по table1.2_loc=table2.loc
если просто писать order by price
работать будет неправильно, поскольку цены в разных валютах, анеобходимо сделавть не просто сортировку по цене, а постраничную сортировку
select * table1 left join table2 on (table1.2_loc=table2.loc) where ......условия..... order by price limit 10,20
как сделать? лепить условие в order by

крипта на ByBit

0
 

« ... full on ... »

С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686

Ссылка на сообщениеДобавлено: 09/11/08 в 17:46       Ответить с цитатойцитата 

Примерно вот так должно работать:
Код:
select *,
if(table2.valute='usd', table1.price*27, table1.price) as final_price
from table1
left join table2 on (table1.2_loc=table2.loc)
where ......условия.....
order by final_price limit 10,20


Смотрим что за валюта в table2, если бакс, то умножаем по курсу, если рупь - отдаём что есть. Сортируем по итоговому результату и на страницы всё будет разбито как надо.

Power of the lime madness...

8
 

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 09/11/08 в 20:11       Ответить с цитатойцитата 

спасибо, буду пробовать

крипта на ByBit

0
 



С нами с 28.02.03
Сообщения: 8532
Рейтинг: 1609

Ссылка на сообщениеДобавлено: 09/11/08 в 22:48       Ответить с цитатойцитата 

чет мне подсказывает что надо просто провести нормализациию таблиц
http://ru.wikipedia.org/wiki/1NF
Первая нормальная форма (1NF)
Вторая нормальная форма (2NF)
Третья нормальная форма (3NF)
хятя моги и ошибаца

Сдам место в подписи. Предложения в личку.

8
 



С нами с 28.02.03
Сообщения: 8532
Рейтинг: 1609

Ссылка на сообщениеДобавлено: 09/11/08 в 23:14       Ответить с цитатойцитата 

решение просто
сперва выбераеш рубли потом баксы умнажая их покурсу

в итоге получаем 2 таблиы которые обединяем через UNION
после чего order by

(SELECT выбераем рубли ) UNION (SELECT выбераем $*.n ) order by;

UNION Syntax
http://dev.mysql.com/doc/refman/5.0/en/union.html

Сдам место в подписи. Предложения в личку.

8
 

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 10/11/08 в 00:13       Ответить с цитатойцитата 

Corex более симпатично подсказал, мне как раз непонятно было куда условие вписалось бы

крипта на ByBit

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »