Mysql - 查询在服务器上不起作用

时间:2014-07-19 09:41:31

标签: php mysql sql phpmyadmin

此查询在服务器上对我不起作用,否则它在本地主机上的Phpmyadmin上正常工作:

SELECT * FROM op_theme_certification
AS t 
INNER JOIN op_category_module AS c 
ON t.cat_mod_id = c.cat_mod_id, 
(SELECT cat_mod_id, MAX(date_expiration) AS max_date FROM op_theme_certification 
GROUP BY cat_mod_id) AS b 
WHERE t.doc_id = '1' 
AND t.cat_mod_id = b.cat_mod_id 
AND t.date_expiration = b.max_date

有什么可以帮到我的吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

虽然它看起来是正确的,但我在过去看到了一些答案,由于某些原因,使用“AS”子句来表示别名,以及“AS”列名称。我会从那里开始。其次,我注意到你正在使用join和comma / join的混合。以下是您现有的替代方案。

SELECT 
      * 
   FROM 
      op_theme_certification t
         INNER JOIN op_category_module c
            ON t.cat_mod_id = c.cat_mod_id
         INNER JOIN 
            ( SELECT 
                    cat_mod_id, 
                    MAX(date_expiration) max_date 
                 FROM 
                    op_theme_certification
                 GROUP BY 
                    cat_mod_id) b
            ON t.cat_mod_id = b.cat_mod_id 
           AND t.date_expiration = b.max_date
   WHERE 
      t.doc_id = '1' 

我肯定会在你的op_theme_certification上有一个复合索引(cat_mod_id,date_expiration)。