Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 影响子查询顺序的SQL左外部联接_Mysql_Sql_Sql Order By - Fatal编程技术网

Mysql 影响子查询顺序的SQL左外部联接

Mysql 影响子查询顺序的SQL左外部联接,mysql,sql,sql-order-by,Mysql,Sql,Sql Order By,我有一个查询,其中包含一个子查询和许多左外部联接。在我的子查询中,我按照最近的blog\u日期按记录排序,并将结果限制为10条记录。这个子查询应该指定记录的顺序,其他连接匹配关于该记录的附加信息,但是,当我添加左侧外部连接时,它忽略了blog_date顺序。这让我相信,我要么缺少了一个关键元素来保持顺序,要么左外部联接不是要使用的右联接 以下是我的完整查询: SELECT `b`.`blog_id`, `b`.`blog_date`,`b`.`title`, `u`.`user_id`, `u`

我有一个查询,其中包含一个子查询和许多左外部联接。在我的子查询中,我按照最近的
blog\u日期
按记录排序,并将结果限制为10条记录。这个子查询应该指定记录的顺序,其他连接匹配关于该记录的附加信息,但是,当我添加
左侧外部连接时,它忽略了
blog_date
顺序。这让我相信,我要么缺少了一个关键元素来保持顺序,要么
左外部联接
不是要使用的右联接

以下是我的完整查询:

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`
;
以下是我仅包含第一次加入(
用户
)时的结果。记录顺序正确(2017-02-21最新):

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`
;

但是,当我添加第二个左外部联接(和剩余联接)时,新的顺序似乎是降序的
blog\u date
顺序,但随后按
category\u name
分组


对子查询排序不会影响外部查询的顺序。将订单置于外部查询的末尾

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`
ORDER BY `b`.`blog_date` DESC ;