0
我有一個包含子查詢和許多左外連接的查詢。在我的子查詢中,我按最近的blog_date
的記錄排序,並將結果限制爲10條記錄。這個子查詢應該規定記錄的順序,其他連接匹配關於該記錄的附加信息,但是,當我添加LEFT OUTER JOIN
時,它忽略了blog_date
排序。這使我相信我要麼缺少堅持訂購的關鍵要素,要麼認爲LEFT OUTER JOIN
不是正確的連接方式。SQL左外連接影響子查詢順序
這裏是我完整的查詢:
SELECT `b`.`blog_id`, `b`.`blog_date`,`b`.`title`, `u`.`user_id`, `u`.`first_name`, `c`.`category_name`, `d`.`discovery_source_name`, `bc`.`comment`, `bf`.`file`
FROM (SELECT * FROM `blog` ORDER BY `blog`.`blog_date` DESC limit 10) `b`
LEFT OUTER JOIN `user` `u` ON `b`.`user_id` = `u`.`user_id` AND `u`.`organization_id` = 1
LEFT OUTER JOIN `category` `c` ON `b`.`category_id` = `c`.`category_id`
LEFT OUTER JOIN `discovery_source` `d` ON `b`.`discovery_source_id` = `d`.`discovery_source_id`
LEFT OUTER JOIN `blog_comment` `bc` ON `b`.`blog_id` = `bc`.`blog_id`
LEFT OUTER JOIN `blog_file` `bf` ON `b`.`blog_id` = `bf`.`blog_id`
;
下面是結果,當我剛剛有第一個連接(user
)記錄是正確的順序(2017年2月21日最新) :
然而,當我在第二個左外連接添加(和剩餘)就看起來新訂單在下降blog_date
訂單,但隨後按category_name
分組。
感謝您的明確! – cphill