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

Форум MySQL

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

 

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

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

тема: Выбор уникальных данных
 
 автор: zsaz   (28.02.2011 в 04:55)   письмо автору
 
 

Есть 3 таблицы: data, model, marka (таблица данных, таблица с моделями авто, таблица с макрами машин)

Из таблицы data нужно выбрать уникальные model_id Это я сделал SELECT DISTINCT (model_id) FROM data

А теперь мне нужно из таблицы marka выбрать уникальные марки, модели которых выбрались в первом запросе. Проблема в том, что у одной марки могут быть несколько моделей и при выборке должна быть всего лишь 1 марка.

  Ответить  
 
 автор: cheops   (28.02.2011 в 10:42)   письмо автору
 
   для: zsaz   (28.02.2011 в 04:55)
 

Следующий запрос проблему не решает?
SELECT DISTINCT (marka_id) FROM marka 
WHERE model_id IN (SELECT DISTINCT (model_id) FROM data)

Если нет, нужно бы более подробно описать ситуацию.

  Ответить  
 
 автор: zsaz   (28.02.2011 в 18:29)   письмо автору
 
   для: cheops   (28.02.2011 в 10:42)
 

Спасибо, по вашим записям я составил нужный для себя запрос
"SELECT DISTINCT (`id`), `marka` FROM `marka` WHERE `id` IN (SELECT DISTINCT(`marka_id`) FROM models WHERE id IN(SELECT DISTINCT(`model_id`) FROM `photo`)) ORDER BY marka"

Но у меня возникла проблема. Информация обрабатывается очень долго (порядка 20-30 секунд), т.к. записей много и они будут расти очень сильно.

в таблице photo ~ 500 записей
в таблице model_id ~ 1500 записей
в таблице marka ~ 90 записей

Будет сильно расти только таблица photo до тысяч и десятков тысяч записей.
Как сделать, чтобы запрос выполнялся быстрее???

  Ответить  
 
 автор: cheops   (28.02.2011 в 18:34)   письмо автору
 
   для: zsaz   (28.02.2011 в 18:29)
 

Поля id, marka_id и model_id индексированы? Если нет, нужно проиндексировать.

  Ответить  
Rambler's Top100
вверх

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