这是我的问题:当使用mysql和mariadb时不同的结果查询
我的数据库有表格Book,Post。每本书都有许多后
表帖子有场“book_id”,即外键引用表簿的主键(ID)。
这是我的索引页。这个想法是在发布日期之前从每本书和订单中获取最新的帖子。
当我在本地主机上编码时,每件事情都可以。我可以从每本书中获取最新的帖子,并按发布日期排序。但是,当我部署在vps中。它没有得到最新的文章,它从每本书中获得第一篇文章。我对此没有任何经验。请帮助,谢谢
在本地主机上,我使用:Apache-2.2,PHP-5.3,Mysql-5.5,引擎类型为表InnoDB。
在VPS,我使用:Nginx的1.7.6,PHP-FPM 5.5.18,MariaDB的,为表发动机类型是MyISAM的
我客人的问题是InnoDB和MyISAM的,我尝试修复它。但是,如果你有空闲时间,请给我一些好的建议。非常感谢
P/S:很抱歉,我的英语不好
SELECT * FROM `my_book_store`.`books`
AS `Book`
INNER JOIN
(
SELECT *
FROM posts
WHERE posts.published = 1 AND posts.published_date <= NOW()
ORDER BY posts.published_date DESC
) AS `Post`
ON (`Post`.`book_id` = `Book`.`id`)
WHERE 1 = 1
GROUP BY `Book`.`id`
ORDER BY `Post`.`published_date` desc
LIMIT 100
它肯定不会涉及到'engine'。但是,如果你想获得最新的帖子(最后一个添加),还有其他方法可以做得更好。 – 2014-12-05 11:36:16
查询本身是一个问题,特别是由于其有序的子查询。每本书都应该加入到该书最新的一篇文章中,子查询应该计算出该文章的关键。 – 2014-12-05 11:58:50
非常感谢,Abhik Chakraborty和德米特里格雷科夫:) – minhchieng 2014-12-05 14:05:46