SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 06.11.2011 16:55:04

Barry
Участник
Зарегистрирован: 06.11.2011
Сообщений: 1

Нестандартная выборка для начинающего

Исходные данные

Ковер1 из коллекции1 и пр. отношения, с размером 0,8х1,5 и ценой 1000, также имеется размер 1х2 с ценой 1300.
Ковер2 из коллекции2, со своим набором цена-пара (1х2-1400, 2х3-2000, 3х5-5000).
И т. д.

Как я представляю структуру БД

table carpet
------------
id_carpet / collection / ... /

table price
-----------
id_carpet / length / width / price

Нужно

Получить 20 ковров с описанием, и всеми парами размер-цена

Вопросы

1. Правильная ли структура БД?
2. Если п.1 "тру", то как какие варианты запросить 20 ковров с описанием, и всеми парами размер-цена?
3. Если п.1 "не тру", подскажите как быть?

Неактивен

 

#2 06.11.2011 19:58:07

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Нестандартная выборка для начинающего

1. Наверное можно и по-другому, но ИМХО и так тоже можно smile.
2. А какие именно 20 ковров вы хотите получить? Самые дорогие, самые дешевые, или как?

Допустим получить 20 самых дешевых ковров можно так:

SELECT `id_carpet`, `length`, `width`, `price` FROM `price` ORDER BY `price` limit 20;

Если нужна еще детализация по ковру (collection и прочее), то вот так:

SELECT `c`.*, `p`.`length`, `p`.`width`, `p`.`price` FROM `carpet `c`` join `price` `p`using(`carpet_id`) ORDER BY `p`.`price` limit 20;
 


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson