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