Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SQL код, как правильно выбрать / 6 сообщений из 6, страница 1 из 1
29.03.2014, 01:54:35
    #38599687
botasa111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL код, как правильно выбрать
Есть таблицы Альбом, Альбом Описание и Картинка, эти 3 таблицы я могу связать без проблем. Есть еще 2 таблицы, Песня и Статистика Песни. Вопрос в тому, как правильно составить ЗАПРОС, что бы вывести топ 10 лучших альбомов, которые зависят от СУМЫ статистики каждой песни в Альбоме. То есть альбом имеет песни и посчитать суму голосов за каждую песню в альбоме и вывести 10 лучших альбомов ... вот кусок примера неверного чуть чуть ... помогите решить задачу ... ВРОДЕ ЛОГИКА ПРАВИЛЬНАЯ но в подзапрос хз как правильно сделать !!! ХЕЛПППППП
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT *
FROM album
NATURAL JOIN album_description
NATURAL JOIN image
WHERE id_album IN 
(
    SELECT id_album, SUM(count) AS popular           // вот тут что то не верно, я знаю что не верно =) но я хз как решить проблему 
    FROM album
    NATURAL JOIN song
    NATURAL JOIN song_statistic
    GROUP BY name_album
    ORDER BY popular DESC 
)
LIMIT 10
...
Рейтинг: 0 / 0
29.03.2014, 01:58:26
    #38599688
botasa111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL код, как правильно выбрать
botasa111,

вроде решил задачу, но хз ли правильно ... думалка включилась ВРОДЕ ВЕРНО, подскажите пожалуйста
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SELECT *
FROM album
NATURAL JOIN album_description
NATURAL JOIN image
WHERE id_album IN 
(
    SELECT id_album
    FROM 
    (
        SELECT id_album, SUM(count) AS popular
        FROM album
        NATURAL JOIN song
        NATURAL JOIN song_statistic
        GROUP BY name_album
        ORDER BY popular DESC 
    ) AS tmp_table
)
LIMIT 10
...
Рейтинг: 0 / 0
29.03.2014, 15:02:23
    #38599841
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL код, как правильно выбрать
Немного проще:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT *
FROM (
  SELECT a.*
  FROM album a
  NATURAL JOIN song s
  NATURAL JOIN song_statistic c
  GROUP BY a.id_album
  ORDER BY SUM(c.count) DESC 
  LIMIT 10
  ) AS tmp_table
NATURAL JOIN album_description
NATURAL JOIN image
...
Рейтинг: 0 / 0
29.03.2014, 15:05:31
    #38599842
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL код, как правильно выбрать
PS. Наверное, лучше было бы
Код: sql
1.
2.
LEFT JOIN album_description ON ...
LEFT JOIN image ON ...
...
Рейтинг: 0 / 0
29.03.2014, 20:29:08
    #38599953
MikkiMouse
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL код, как правильно выбрать
Cygapb-007,

Че за NATURAL на... ? Ни разу не пользовался, расскажите!
...
Рейтинг: 0 / 0
30.03.2014, 07:42:26
    #38600060
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL код, как правильно выбрать
Догадайся, где это можно найти. Желательно с первой попытки.The NATURAL [LEFT] JOIN of two tables is defined to be semantically equivalent to an INNER JOIN or a LEFT JOIN with a USING clause that names all columns that exist in both tables.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SQL код, как правильно выбрать / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]