![]() |
|
||||||||||
|
|||||
|
Есть таблица с фирмами два поля (ID Name)
1 Nissan 2 Ford 3 Жигули ... Есть таблица с типами (ID Name) 1 Седан 2 Кабриолет ... Есть таблица цен (ID Id_firm Id_type Price) 1 1 2 $4000 2 5 1 $30000 Надо вывести этот прайс сортируя сначала по фирмам потом по типу потом по цене да плюс еще разбить на станицы Используя вложенные запросы не возможно разбить на одинаковые страницы Можно одним сделать все на mySQL |
|
|||||
|
Регистрация: Mar 2001
Адрес: Петрозаводск
Сообщений: 44
|
Вывод с сортировкой:
SELECT F.Name, T.Name, P.Price FROM FIRMATABLE F, TYPESTABLE T, PRICETABLE P ORDER BY F.Name, T.Name, P.Price Один совет - в качестве цены храни числовое значение, добавь поле код валюты, ну и табличку с кодами валюты. Можно было бы привести их к у.е., чтобы можно было легко пересчитать в любую другую валюту. А разбивать на странички нужно скриптом. А в запросе использовать опции Limit, Offset. Лень писать полностью, так что почитай доки по мускулу, там все просто. ![]() Удачи. Geoserg |
|
|||||
|
Таким запросом я выведу все имена...
а как что бы по ID выводилось нужное имя |
|
|||||
|
Таким запросом я выведу все имена...
а как что бы по ID выводилось нужное имя |
|
|||||
|
Регистрация: Mar 2001
Адрес: Петрозаводск
Сообщений: 44
|
Тьфу блин...
Точно забыл еще условия связи таблиц добавить. Вот тормознул-то. Таким запросом вообще выведется не то, что надо.SELECT F.FirmaName, T.FirmaName, P.Price FROM FIRMATABLE F, TYPESTABLE T, PRICETABLE P WHERE (P.ID_FIRM=F.ID) AND (P.ID_TYPE=P.ID) ORDER BY F.Name, T.Name, P.Price Так выведется весь список, который нужен. То же самое можно прописать JOIN'ами: SELECT FirmaName, TypeName, Price FROM PriceTable LEFT JOIN FirmaTable ON PriceTable.Firma_ID=FirmaTable.ID LEFT JOIN PriceTable.Type_ID=TypesTable.ID ORDER BY FirmaName, TypeName, Price Хотя насчет этого я не уверен. Я JOIN'ы не использую, проще прописать все условия в секции WHERE, ИМХО конечно.Но если интересно почитай MySQL manual главы 6.4.x. Там все есть. -------------------------------------- а как что бы по ID выводилось нужное имя -------------------------------------- Какое имя? И по какому ID? У тебя их тут 2 - имя фирмы, имя марки.Удачи. Geoserg P.S. И эта... Почитай мануал-то. Лучше день потерять, потом за 10 минут долететь. ![]() |
|
|||||
|
Регистрация: Mar 2001
Адрес: Петрозаводск
Сообщений: 44
|
Ну а чтобы еще на странички ровные порезать добавь словечко LIMIT. Вот так.
SELECT F.FirmaName, T.FirmaName, P.Price FROM FIRMATABLE F, TYPESTABLE T, PRICETABLE P LIMIT x,y WHERE (P.ID_FIRM=F.ID) AND (P.ID_TYPE=P.ID) ORDER BY F.Name, T.Name, P.Price Выведет тебе записи с (x+1) по (x+y) включительно. А x,y скриптом формируй. Успехов. Geoserg |
![]() |
Часовой пояс GMT +4, время: 00:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|