gpt4 book ai didi

mysql - 我可以将 2 个查询从 2 个不同的表合并到一个数据数组中吗?

转载 作者:行者123 更新时间:2023-11-29 03:08:57 26 4
gpt4 key购买 nike

我正在开发一个媒体库,让用户可以将文件组织到文件夹中。我有一个文件表,用于跟踪它所属文件夹的父 ID。我还有一个文件夹表,它也允许父 ID - 所以一个文件夹可以在另一个文件夹中。当我想显示一个列出父文件夹包含的文件和文件夹的 View 时,问题就来了。到目前为止,我已经采取了一种廉价的方式,对文件夹进行了 2 个单独的查询,然后是文件 - 然后一个接一个地列出。但是,现在列表已经变长了——我想对它们进行分页——所以我需要限制我的查询。我如何组合 2 个查询以获得一个我可以循环访问的文件和文件夹的数据数组?

例如,我可以这样做:

SELECT * 
FROM `files` LEFT JOIN `folders` ON `files`.`folder_id` = `folders`.`id`
WHERE `folders`.`id` = 198

这将为我提供该文件夹中所有文件的列表。

然后这个:

SELECT * FROM `folders` WHERE `parent` = 198

这将为我提供所有子文件夹的列表。

有没有一种方法可以将两者结合起来给我一个循环遍历的数据数组?

最佳答案

尝试这样的事情:

SELECT id_file, name, 'file' as `type` 
FROM `files`
LEFT JOIN `folders` ON `files`.`folder_id` = `folders`.`id`
WHERE `folders`.`id` = 198

UNION

SELECT id_folder, name, 'folder' FROM `folders` WHERE `parent` = 198

LIMIT 0, 20

关于mysql - 我可以将 2 个查询从 2 个不同的表合并到一个数据数组中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11171405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com