Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Как рациональнее приJOINить кучу столбцов (Юрий) 09/11/2005 - 17:15:03
      Re: Как рациональнее приJOINить кучу столбцов (Dubrovsky) 09/11/2005 - 22:23:26
      Re: Как рациональнее приJOINить кучу столбцов (Are) 10/11/2005 - 10:44:45

> Original message text:
> From: Юрий - 09/11/2005 - 17:15:03
> Subject:Как рациональнее приJOINить кучу столбцов
> -----------------
> Есть база данных по химическому составу звезд:
> Таблица1 "stars" - всякие звездные харакеристики (около 50)
> id, ...
> Таблица2 "Abundance" - содержание различных химических элементов в звездах
> id,star_id,element,ion,abund,d_abund - хим.элемент, ион, содержание и ошибка
>
> Для каждой звезды есть информация по 20-50 элементам.
> Требуются сделать запрос, чтобы вывести:
> stars.id abund_El1 d_abund_El1 abund_El2 d_abund_El2 ... - то есть для каждой звезды химический состав по всем элементам (если нет такой информации, то null).
> Я сделал с помощью JOIN (например для 2ух элементов без ошибок d_abund):
> SELECT stars.id, a1.abund_fe as Na1, a2.abund_fe as Co1 FROM stars
> JOIN Abundance as a1 on (stars.id=a1.star_id and a1.element='Na' and a1.ion=1)
> JOIN Abundance as a2 on (stars.id=a2.star_id and a2.element='Co' and a2.ion=1)
>
> Вроде работает нормально, но если попробовать вывести информацию по всем 50 элементам, то жутко тормозит. Как рациональнее сделать запрос?
>


From: Are - 10/11/2005 - 10:44:45
Subject:Как рациональнее приJOINить кучу столбцов
-----------------
Я бы добавил к ответу, что SELECT лучше сделать по stars.id, element, abund_fe. А затем результат запроса одним циклом вкачать в массив $data[star_id][element] = abund_fe, с которым потом можно делать все что угодно.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
24969



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |