我试图从不同的表中获取文件夹和文件名,并根据每个查询语句的结果,按它们的降序排序 update_date
而不是使用 UNION
.
如果我分别运行这两个查询,它会工作,结果将按照日期的降序从数据库中检索。但当我使用 UNION
对他们来说,这并不能给我正确的答案。
正确的方法是什么?
(
SELECT create_date, folder_name AS actual_name, folder_id, folder_displayed_name AS displayed_name, update_date, delete_flag, NULL AS img_url, NULL AS protect_flag, NULL AS file_type, list_order
FROM aaaaa_estate.docs_folder
WHERE delete_flag =0
AND inside_of_folder = ''
ORDER BY update_date DESC
)
UNION (
SELECT create_date, file_name AS actual_name, id, displayed_name, update_date, delete_flag, img_url, protect_flag, file_type, list_order
FROM aaaaa_estate.docs_contract
WHERE delete_flag =0
AND inside_of = ''
ORDER BY update_date DESC
)
如果我在最后使用order by子句。它根据数据的大小对所有数据进行排序
update_date ORDER BY DESC
我从来都不想要。
我想向用户显示文档列表,就像google在googledrive中显示的那样,总是先显示文件夹,然后显示文件。他们每个人都按 update_date DESC
2条答案
按热度按时间nhjlsmyf1#
在子查询外使用order by
正如您所提到的,您总是先文件夹,然后文件,所以将其分为两种类型以保持正确的顺序
3qpi33ja2#
你可以试试下面的方法
ORDER BY
子句取决于两列: