Sterx
имеется поле 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
Corex
Примерно вот так должно работать:
Код:
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, если бакс, то умножаем по курсу, если рупь - отдаём что есть. Сортируем по итоговому результату и на страницы всё будет разбито как надо.
Alexs
чет мне подсказывает что надо просто провести нормализациию таблиц
http://ru.wikipedia.org/wiki/1NF
Первая нормальная форма (1NF)
Вторая нормальная форма (2NF)
Третья нормальная форма (3NF)
хятя моги и ошибаца
Alexs
решение просто
сперва выбераеш рубли потом баксы умнажая их покурсу
в итоге получаем 2 таблиы которые обединяем через UNION
после чего order by
(SELECT выбераем рубли ) UNION (SELECT выбераем $*.n ) order by;
UNION Syntax
http://dev.mysql.com/doc/refman/5.0/en/union.html