Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.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
Php MS访问多个内部联接_Php_Sql_Ms Access - Fatal编程技术网

Php MS访问多个内部联接

Php MS访问多个内部联接,php,sql,ms-access,Php,Sql,Ms Access,我有一个sql查询 SELECT e.permission_name FROM ((((users_roles a INNER JOIN users b ON a.user_id = b.id) INNER JOIN roles c ON a.role_id = c.id) INNER JOIN roles_permissions d ON c.id = d.role_id)

我有一个sql查询

SELECT e.permission_name 
FROM ((((users_roles a 
          INNER JOIN users b 
          ON a.user_id = b.id) 
         INNER JOIN roles c 
         ON a.role_id = c.id) 
        INNER JOIN roles_permissions d 
        ON c.id = d.role_id) 
       INNER JOIN permissions e 
       ON d.permission_id = e.id) 
WHERE b.id = :id
我添加了括号,因为MS Access需要它,但它不起作用


我在PHP中使用MS Access

我认为不需要放括号,因为它可能会导致语法错误。只需拆下支架

SELECT e.permission_name 
FROM users_roles a 
INNER JOIN users b ON a.user_id = b.id
INNER JOIN roles c ON a.role_id = c.id
INNER JOIN roles_permissions d N c.id = d.role_id
INNER JOIN permissions e ON d.permission_id = e.id
WHERE b.id = :id

我建议这样编写查询:

SELECT p.permission_name 
FROM (((users_roles as ur INNER JOIN
        users as u
        ON ur.user_id = u.id
       ) INNER JOIN
       roles as r 
       ON ur.role_id = r.id
      ) INNER JOIN
      roles_permissions as rp
     ON r.id = rp.role_id
     ) INNER JOIN
     permissions as p
     ON rp.permission_id = p.id
WHERE u.id = :id;

与您的版本唯一的真正区别是将
用作表别名。

到底是什么不起作用?删除(),让access重新添加它们。