Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Максимально оптимальный запрос
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Максимально оптимальный запрос

Страниц (1): [1]
 

1. Jlblcblu - 06 Июля, 2013 - 14:57:59 - перейти к сообщению
Добрый день, форумчане.
Нужна помощь для написания максимально быстро-отрабатывающего запроса.

Суть:
Есть 3 таблички:
CODE (htmlphp):
скопировать код в буфер обмена
  1. artist a (id_artist, name)
  2. song s (id_song, id_artist, name) - связана s.id_artist = a.id_artist
  3. text t (id_text, id_song, text, position) - связана t.id_song = s.id_song


Нужно сделать запрос, который вернет список всех песен по исполнителю. А также первое отсортированное значение (максимум или минимум, например) из таблицы t.

Но может быть вариант, что в таблице t не будет связи для таблицы s (по-русски нет текстов для песни). Тогда мы должны вместо id_text получить null.

Пример ответа:
CODE (htmlphp):
скопировать код в буфер обмена
  1. s.id_song | s.name | t.id_text
  2.       1          Group        3
  3.       2          Group2      7


Вот и вся задачка. Только нужен запрос, который отработает быстро и не изнасилует базу данных, так как будет дергаться во фронтенде. Если надо добавить индексы - напишите какие именно.

Заранее спасибо.

 

Powered by ExBB FM 1.0 RC1