多对多查询 mysql

many-to-many query mysql

我有 3 个 table: 用户

+-----+--------+
| id  |  name  |
+-----+--------+
|  1  |  John  |
+-----+--------+
|  2  |  Mike  |
+-----+--------+

文件

+-----+--------+
|  id |  file  |
+-----+--------+
|  22 | file1  |
+-----+--------+
|  23 | file2  |
+-----+--------+

和table关系usersfiles

+-------+--------+
| usrID | fileID |
+-------+--------+
|   1   |   22   |
+-------+--------+
|   2   |   22   |
+-------+--------+
|   2   |   23   |
+-------+--------+

这个问题的 mysql 查询应该是什么样的?

Select 为当前用户启用的所有文件。 此示例的答案如下所示: 用户 John 仅启用 file1。对于用户 Mike 启用的文件 file1file2.

这是一个简单的连接:

select files.id from users join usersfile on users.id=usrid join files on fileID=files.id where userid= <userid>

使用这个

SELECT name, file FROM users,userfiles, files WHERE users.id = userfiles.usrid AND usersfiles.fileid = files.id;