简体   繁体   English

多对多查询mysql

[英]many-to-many query mysql

I have 3 tables: users 我有3张桌子: 用户

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

files 档案

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

and table relationship usersfiles 和表关系的用户文件

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

How should the mysql query for this question look like? mysql查询该问题应如何?

Select all files enabled for current user. 选择为当前用户启用的所有文件。 Answer for this example would look like this: for user John enabled just file1 . 该示例的答案如下所示:对于用户John仅启用了file1 For user Mike enabled files file1 and file2 . 为用户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;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM