什么是MySQL检查外部参考的最快方法

时间:2016-12-16 15:16:06

标签: php mysql database

我有一个表格文件

+------------+
| id | name  |
+------------+
+ 1  | x.jpg |
+ 2  | y.jpg |
+------------+

其他表引用这些文件,例如

+---------------+-------+
| id | file_id  | user  |
+---------------+-------+
+ 1  |    2     | test  |
+ 2  |    1     | test1 |
+---------------+-------+

并且想要检查文件是否是orphanet但我不知道它在哪些表中被引用。什么是最快的检查方式?

1 个答案:

答案 0 :(得分:2)

您必须非常明确地使用您的查询。让我们假设您可能包含对table1表的引用的其他2个表(table2Files)。

你会

 SELECT Files.* FROM Files 
    LEFT JOIN table1 ON (Files.id = table1.file_id)
    LEFT JOIN table2 ON (Files.id = table2.file_id)
 WHERE
     table1.file_id IS NULL
     AND table2.file_id IS NULL

此查询会将您的其他表格加入到您的Files表格中并说出"在两个表格中都没有File.id的情况下给我结果"。您必须为要搜索的每个表扩展此查询。