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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: очень сложный запрос
 
 автор: segafrompiter   (28.01.2007 в 12:01)   письмо автору
 
 

Делаю каталог автозапчастей.
Таблица объявлений-
id_adver
id_marka из таблицы marka
id_modeli из таблицы modeli
id_universality

id_universality - это универсальность детали, т.е. она пожет подходить только для марки,
только для марки и модели, или для всех машин.
Вот проблема и возникла при изменении запроса под универсальность.

id_universality=2 - Только для этой марки (VW например)
id_universality=1 - Только для этой марки и модели
Вот мой запрос-

$result6 = mysql_query("SELECT *,DATE_FORMAT(date_in,'%d-%m-%Y') AS date_in 
FROM advertisements,modeli,goroda,kupura 
where ((advertisements.id_marka=".mysql_result($result2,0,0)." and
 modeli.id_modeli=advertisements.id_modeli) or
 (advertisements.id_marka=".mysql_result($result2,0,0)." and 
advertisements.id_universality=2 and 
advertisements.id_modeli=0 and
 modeli.id_marka=".mysql_result($result2,0,0).") ) and
 advertisements.id_gorod=goroda.id_gorod and
 kupura.id_kupura=advertisements.id_kupura");


mysql_result($result2,0,0) - это запрос на выбор id_marka, он рабочий
advertisements.id_modeli=0 - если id_universality=2, то id_modeli автоматом становится 0, т.к. запчасть общая для всей марки.
Запрос выдает повторы объявлений , перебирая все модели выбранной марки,
а при advertisements.id_universality=2 должнен вывести единыжды объявления с advertisements.id_universality=2

Вот, чувствую,что здесь надо объединение таблиц, но как им пользоваться не знаю!
Надеюсь, поможете

   
 
 автор: ssdmt_   (28.01.2007 в 12:48)   письмо автору
 
   для: segafrompiter   (28.01.2007 в 12:01)
 

а в пятой версии есть вложенные запросы :)

   
 
 автор: cheops   (28.01.2007 в 13:06)   письмо автору
 
   для: segafrompiter   (28.01.2007 в 12:01)
 

Сгруппируйте данные по полю advertisements.id_universality, т.е. добавьте в конец строку
GROUP BY advertisements.id_universality

   
 
 автор: segafrompiter   (28.01.2007 в 14:18)   письмо автору
 
   для: cheops   (28.01.2007 в 13:06)
 

да, спасибо, почему-то я сначала задаю вопрос, потом думаю, и потом также Group by использовал.

   
Rambler's Top100
вверх

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