2013-07-12 2 views
0

Привет там (Я новичок в PHP),Сортировка результата запроса/Mysql Subquery

Я не могу вполне понять синтаксис подзапроса я пытаюсь сделать, это запрос :

SELECT * FROM show_episode, shows, show_episode_airdate, show_moyenne 
WHERE season = 1 AND episode = 1 
AND shows.imdb_id = show_episode.imdb_id_show 
AND show_episode_airdate.episode_id = show_episode.episode_id 
AND show_moyenne.show_id = shows.id 
AND show_episode_airdate.airdate < '2013-07-12' 
ORDER BY show_episode_airdate.airdate DESC LIMIT 10 

После того, как это было сделано, я хотел бы заказать эти 10 выбранных строк по show_moyenne.moyenne с чем-то вроде этого:

SELECT * (FROM show_episode, shows, show_episode_airdate, show_moyenne 
WHERE season = 1 AND episode = 1 
AND shows.imdb_id = show_episode.imdb_id_show 
AND show_episode_airdate.episode_id = show_episode.episode_id 
AND show_moyenne.show_id = shows.id 
AND show_episode_airdate.airdate < '2013-07-12' 
ORDER BY show_episode_airdate.airdate DESC LIMIT 10) 
* ORDER BY show_moyenne.moyenne DESC 

что не правильно, кто-то может показать мне правильный путь к сделай это ?

Спасибо, любая помощь оценена!

ответ

1
SELECT x.* 
    FROM 
     (SELECT * 
      FROM show_episode e 
      JOIN shows s 
      ON s.imdb_id = e.imdb_id_show 
      JOIN show_episode_airdate a 
      ON a.episode_id = e.episode_id 
      JOIN show_moyenne m 
      ON m.show_id = s.id 
     WHERE season = 1 
      AND episode = 1 
      AND a.airdate < '2013-07-12' 
     ORDER 
      BY a.airdate DESC 
     LIMIT 10 
    ) x 
    ORDER 
    BY moyenne; 
+0

Вот что я пытаюсь сделать, спасибо! Хотя, я получаю дублируемую колонку episode_id error? – Callombert

+0

Не используйте «SELECT *». Назовите нужные столбцы. – Strawberry

+0

Тогда я попробую. – Callombert

2
Select * from 
(SELECT * FROM show_episode, shows, show_episode_airdate, show_moyenne 
WHERE season = 1 AND episode = 1 
AND shows.imdb_id = show_episode.imdb_id_show 
AND show_episode_airdate.episode_id = show_episode.episode_id 
AND show_moyenne.show_id = shows.id 
AND show_episode_airdate.airdate < '2013-07-12' 
ORDER BY show_episode_airdate.airdate DESC LIMIT 10) as j 
order by j.moyenne DESC 

Я надеюсь, что это может быть какой-то помощи.

+0

Да, я изменил его. –

Смежные вопросы