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存储过程,用于根据连接用户的成员资格选择不同的列数据_Mysql_Stored Procedures - Fatal编程技术网

MYSQL存储过程,用于根据连接用户的成员资格选择不同的列数据

MYSQL存储过程,用于根据连接用户的成员资格选择不同的列数据,mysql,stored-procedures,Mysql,Stored Procedures,我正在尝试创建一个存储过程,以返回ID列表和每个ID的计算机名,这些ID列表和计算机名根据所连接用户的公司成员资格和公司所在地区的不同而不同,格式如下: ID | ComputerName ================= ……但我真的没有任何进展,如果有任何帮助,我将不胜感激 我需要ComputerName的值为NameCompany、NameRegion、NamePublic中的一个,具体取决于登录用户是哪个公司/地区的成员: 计算机名称表: ComputerID | CompnayID

我正在尝试创建一个存储过程,以返回ID列表和每个ID的计算机名,这些ID列表和计算机名根据所连接用户的公司成员资格和公司所在地区的不同而不同,格式如下:

ID | ComputerName
=================
……但我真的没有任何进展,如果有任何帮助,我将不胜感激

我需要ComputerName的值为NameCompany、NameRegion、NamePublic中的一个,具体取决于登录用户是哪个公司/地区的成员:

计算机名称表:

ComputerID | CompnayID | NameCompany | NameRegion  | NamePublic
================================================================
1          | 1         | AlicesPC    | MarketingPC | GeneralPC
2          | 1         | BobsPC      | FinancePC   | SpecialPC
3          | 2         | AndysPC     | AdminPC     | ProtectedPC
4          | 3         | JanesPC     | ReceptionPC | GeneralPC
用户表:

UserID | UserName | MemberofCompanyID
=====================================
 1     | Jim      | 1
 2     | Sally    | 2
 3     | Ann      | 3   
公司表:

CompanyID | CompanyName | MemberOfRegionID
==========================================
1         | Acme        | North
2         | Sprockets   | North
3         | Arkwrights  | South
Ragion表格:

RegionID | RegionName
=====================
1        | North
2        | South
以便: 从StoredProcedure中为Jim returns选择ID、ComputerName:

ID | ComputerName
=================
1  | AlicesPC
2  | BobsPC
3  | AdminPC
4  | GeneralPC
从StoredProcedure中为Sally returns选择ID、ComputerName:

ID | ComputerName
=================
1  | MarketingPC
2  | FinancePC
3  | AndysPC
4  | GeneralPC
从StoredProcedure中为Ann返回选择ID、ComputerName:

ID | ComputerName
=================
1  | GeneralPC
2  | SpecialPC
3  | ProtectedPC
4  | JanesPC
我还尝试添加一个OverrideName表,该表可以修改给定用户的内容:

重写名称表:

OverrideID | UserID | ComputerID | OverrideName
======================================================
1          | 3      | 2          | Special-PC-TopFloor
因此,从StoredProcedure中为Ann选择ID、ComputerName:

ID | ComputerName
=================
1  | GeneralPC
2  | Special-PC-TopFloor
3  | ProtectedPC
4  | JanesPC
到目前为止,我的思考过程是建立一个

ID,NamePublic

然后使用NameRegion覆盖该区域,其中userid在公司中,公司在区域中

然后使用NameCompany覆盖它,其中userid位于公司中

最后用覆盖表中条目与用户名匹配的数据覆盖它

任何帮助或建议,谢谢

谢谢