为什么这个 MySQL 查询在一个有 17k 行的表上需要永远(并且永远不会完成)?
SELECT * FROM files_folders WHERE file IN (SELECT file FROM files_folders WHERE folder = 123);
基本上,一个文件可以位于多个文件夹中(一个物理文件及其副本)。我正在尝试获取文件夹 123 中的所有文件。现在在我的示例中,文件夹 123 中有 2 个文件。ID #4222 和 ID #7121。但是这两个文件可能在其他文件夹以及文件夹 123 中。
我这样做是错误的方式还是我遗漏了什么?
编辑:这是表结构的示例。
+--------------+
| file | folder|
+------+-------+
| 1 | 1 |
| 2 | 1 |
| 1 | 2 |
| 3 | 2 |
| 4 | 3 |
+------+-------+
所以我想选择文件夹 1 中的所有文件(及其副本),这些文件将返回:
+--------------+
| file | folder|
+------+-------+
| 1 | 1 |
| 2 | 1 |
| 1 | 2 |
+------+-------+
因为文件 1 在文件夹 1 和 2 中。
谢谢你。