Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在';是通过连接连接的吗?_Mysql_Sql_Join - Fatal编程技术网

Mysql 如何在';是通过连接连接的吗?

Mysql 如何在';是通过连接连接的吗?,mysql,sql,join,Mysql,Sql,Join,我有一个网站的一部分,应该只有某些用户可以访问。我在考虑访问控制的这个表结构。还有其他更好的方法吗 **Users** id | Name | age 39 | Peter | 24 40 | Alan | 15 **Sections** id | Name | description 1 | Games | flash games 2 | Bank | bank access *

我有一个网站的一部分,应该只有某些用户可以访问。我在考虑访问控制的这个表结构。还有其他更好的方法吗

**Users**
id    |   Name   |   age
39    |   Peter  |   24 
40    |   Alan   |   15


**Sections**
id    |   Name   |   description
1     |  Games   |   flash games
2     |  Bank    |  bank access


**AccessControl**
id   |   user_id   |  section_id
1    |     39      |    1
2    |     39      |    2
3    |     40      |    1
如何选择Peter(id:39)可以访问的所有部分

谢谢

试试这个:

SELECT * FROM Sections where section_id in (SELECT section_id from AccessControl where user_id=39)
试一试怎么样:

select s.* from Users u, Sections s, AccessControl ac where
u.id = 39 and
u.id = ac.user_id and
ac.section_id = s.id

第一个问题,;堆栈溢出不是正确的位置。它更适合于。关于第二个问题:

SELECT s.name, s.description, u.name
FROM Sections s, Users u
INNER JOIN AccessControl ac
    ON ( ac.user_id = u.id
        AND ac.section_id = s.id )
WHERE u.id = 39
尝试:

SELECT *
FROM Sections
JOIN AccessControl ON Sections.id = AccessControl.section_id
JOIN Users ON Users.id = AccessControl.user_id
WHERE Users.id = 39
SELECT *
FROM access_control
JOIN sections ON sections.id = access_control.section_id
WHERE access_control.user_id =39