programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 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
|
|
|
|
« ... 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
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 09/11/08 в 20:11 |
спасибо, буду пробовать
|
|
|
|
С нами с 28.02.03
Сообщения: 8542
Рейтинг: 1609
|
Добавлено: 09/11/08 в 22:48 |
чет мне подсказывает что надо просто провести нормализациию таблиц
http://ru.wikipedia.org/wiki/1NF
Первая нормальная форма (1NF)
Вторая нормальная форма (2NF)
Третья нормальная форма (3NF)
хятя моги и ошибаца
|
|
Сдам место в подписи. Предложения в личку.
|
8
|
|
|
С нами с 28.02.03
Сообщения: 8542
Рейтинг: 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
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 10/11/08 в 00:13 |
Corex более симпатично подсказал, мне как раз непонятно было куда условие вписалось бы
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |