0

您好(我是 PHP 新手),

我不太清楚我要创建的子查询的语法,这是查询:

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

完成此操作后,我想通过 show_moyenne.moyenne 对这 10 个选定的行进行排序,如下所示:

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

哪个不正确,任何人都可以告诉我正确的方法吗?

谢谢,任何帮助表示赞赏!

4

2 回答 2

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

我希望这能有所帮助。

于 2013-07-12T12:11:46.173 回答
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;
于 2013-07-12T12:10:32.047 回答