Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Некорректный запрос

Сообщения:  [1-5] 

 
 автор: Serg_l   (04.06.2008 в 13:41)   письмо автору
 
   для: cheops   (04.06.2008 в 10:57)
 

Спасибо, все заработало как и хотел.

   
 
 автор: lemonade   (04.06.2008 в 11:11)   письмо автору
 
   для: Serg_l   (04.06.2008 в 10:37)
 

Можно попробоватъ исполъзоватъ GROUP BY:

SELECT *
FROM shops, shops_brands, brands
WHERE shops.sh_id = shops_brands.sh_id
AND shops_brands.br_id = brands.br_id

GROUP BY br_name

ORDER BY br_reiting
LIMIT 0 , 30

   
 
 автор: cheops   (04.06.2008 в 10:57)   письмо автору
 
   для: Serg_l   (04.06.2008 в 10:37)
 

Необходимо сгруппировать результирующую таблицу по брендам
SELECT * FROM shops, shops_brands, brands
WHERE shops.sh_kat = 'odezhda'
AND shops.sh_id = shops_brands.sh_id
AND shops_brands.br_id = brands.br_id
GROUP BY brands.br_id
ORDER BY br_reiting;

   
 
 автор: ronin80   (04.06.2008 в 10:56)   письмо автору
 
   для: Serg_l   (04.06.2008 в 10:37)
 

а ты как хотел?

   
 
 автор: Serg_l   (04.06.2008 в 10:37)   письмо автору
 
 

Подскажите, как правильно выбрать данные из БД
есть три таблицы - brands, shops и связующая shops_brands

Мне надо вывести все бренды, которые соответствуют магазинам одежды

CREATE TABLE brands (
br_id int(5) NOT NULL auto_increment,
br_name text,
br_reiting int(3),
...
PRIMARY KEY (br_id)
) TYPE=MyISAM;

CREATE TABLE shops (
sh_id int(5) NOT NULL auto_increment,
sh_name text,
sh_kat text,
...
PRIMARY KEY (sh_id)
) TYPE=MyISAM;

CREATE TABLE shops_brands (
sh_id int(5) NOT NULL,
br_id int(5) NOT NULL,
PRIMARY KEY (sh_id, br_id)
) TYPE=MyISAM;

Вот запрос:
SELECT * FROM shops, shops_brands, brands
WHERE shops.sh_kat = 'odezhda'
AND shops.sh_id = shops_brands.sh_id
AND shops_brands.br_id = brands.br_id
ORDER BY br_reiting;

В результате:
Если бренд в одном магазине - все нормально выводит
Если бренд в нескольких магазинах - то в результате запроса дублируется строка с ЭТИМ БРЕНДОМ для каждого магазина.

Подскажите, как вывести бренд один раз, если он соответствует условиям?

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования