這是我的問題:當使用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