Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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 从具有多个联接的多个表进行SQL查询_Mysql_Sql - Fatal编程技术网

Mysql 从具有多个联接的多个表进行SQL查询

Mysql 从具有多个联接的多个表进行SQL查询,mysql,sql,Mysql,Sql,我有以下数据库,其中用户帐户详细信息存储在用户表中,组织详细信息通过“UsersOrganization\u Map”连接表链接到用户,用户权限通过UsersInteroles\u Map连接表链接到用户。数据库是MySQL 我正在努力解决的是如何在一个查询中同时从角色和组织表中获取数据,并将结果作为来自单个表的结果返回 下面是一个示例脚本(不起作用),希望它能描述我试图实现的目标 > select * from UsersOrganisation_Map, UsersSiteRoles_

我有以下数据库,其中用户帐户详细信息存储在用户表中,组织详细信息通过“UsersOrganization\u Map”连接表链接到用户,用户权限通过UsersInteroles\u Map连接表链接到用户。数据库是MySQL

我正在努力解决的是如何在一个查询中同时从角色和组织表中获取数据,并将结果作为来自单个表的结果返回

下面是一个示例脚本(不起作用),希望它能描述我试图实现的目标

> select * from UsersOrganisation_Map, UsersSiteRoles_Map join Users on
> UsersOrganisationMap.userID = Users.userID join Organisation on
> UsersOrganisationMap.organisationID = Organisation.organisationID
> where userEmail = 'admin@test.com' AND userPassword = 'test' AND
> accountActive = 'YES' join Users on UsersSiteRoles_Map.userID =
> Users.userID join SiteRoles on UsersSiteRoles_Map.roleID =
> SiteRoles.roleID

这应该类似于:

SELECT
    u.*,
    usr.*,
    sr.*,
    uom.*,
    o.*
FROM
    Users as u
JOIN UsersSiteRoles_Map as usr
    ON u.userID = usr.UserId
JOIN SiteRoles as sr
    ON UsersSiteRoles_Map.roleID = sr.roleID
JOIN UsersOrganisation_Map as uom
    ON u.userID = uom.userID
JOIN Organisation as o
    ON o.organisationID = uom.Id
WHERE
    u.userEmail = 'admin@test.com'
    AND u.userPassword = 'test'
    AND u.accountActive = 'YES'

您只需将所有五个表连接在一起,如:

SELECT *
FROM Users u
-- join to get roles
JOIN UsersSiteRoles_Map ur ON u.id=ur.user_id
JOIN SiteRoles r ON um.role_id=r.id
-- join to get organisation
JOIN UsersOrganisation_Map uo ON u.id=uo.user_id
JOIN Organisation o ON uo.organisation_id=o.id
-- filter results
WHERE u.email=admin ...

你能告诉我们,到底什么不起作用?你能给我们举一个你想要的产品的例子吗?