复杂SQL选择带内连接的SOD
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复杂SQL选择带内连接的SOD相关的知识,希望对你有一定的参考价值。
你好吗?我正在尝试部署复杂的SQL选择。
表:
USER(有一个布尔值告诉我们它是用户还是个人资料)(nombre是PK)
nombre is_user
pedro 1
P_Facturacion 0
P_Administracion 0
REL_USERPROFILE(用户及其配置文件之间的关系)(由用户名和配置文件名称组成的PK)
Pedro P_Facturacion
Pedro P_Administracion
DUTY(一个职责有多个配置文件,在示例中只有一个。)(id自动增量PK)
Facturar P_Facturacion
Administrar P_Administracion
MATRIX(矩阵有2个职责,存在风险。这使用职责ID如FK和矩阵PK是自动增量)
Facturar Administrar Critical(risk)
好吧,我必须选择所有必须具有dutys风险的配置文件的用户。为了更好地解释它,我需要在此示例中选择所有具有与职责Facturacion和administracion相关的配置文件的用户。
结果的例子是。 Pedro Facturar Administrar关键
谢谢!
答案
SELECT
primerset.conflicto,
primerset.operador1,
primerset.duty1,
primerset.P1,
segundoset.duty2,
segundoset.P2,
primerset.criticidad,
primerset.descripcion
FROM
((SELECT Rel_Operador_Perfil.operador AS 'operador1', Rel_Operador_Perfil.sucursal_operador as 'sucursal1', Duty.nombre AS 'duty1', Matriz.criticidad AS 'criticidad',
Matriz.conflicto AS 'conflicto', Rel_Duty_Perfil.perfil as 'P1', Matriz.descripcion as 'descripcion'
FROM (Rel_Operador_Perfil
INNER JOIN Rel_Duty_Perfil ON Rel_Operador_Perfil.Operador_Perfil = Rel_Duty_Perfil.perfil
INNER JOIN Duty ON Rel_Duty_Perfil.idduty = Duty.id
INNER JOIN Matriz ON Duty.id = Matriz.duty1 ))AS primerset
INNER JOIN
(SELECT Rel_Operador_Perfil.operador as 'operador2',Rel_Operador_Perfil.sucursal_operador as 'sucursal2', Duty.nombre AS 'duty2', Rel_Duty_Perfil.perfil as 'P2'
FROM(Rel_Operador_Perfil
INNER JOIN Rel_Duty_Perfil ON Rel_Operador_Perfil.Operador_Perfil = Rel_Duty_Perfil.perfil
INNER JOIN Duty ON Rel_Duty_Perfil.idduty = Duty.id
INNER JOIN Matriz ON Duty.id = Matriz.duty2 )) AS segundoset
ON primerset.operador1 = segundoset.operador2)
GROUP BY primerset.operador1, primerset.duty1, segundoset.duty2, primerset.conflicto, primerset.criticidad,primerset.P1,segundoset.P2,primerset.descripcion
ORDER BY primerset.operador1`enter code here`
这是我的解决方案,但只有当我在矩阵上的职责之间只有1个关系时才有效。当我有多个关系时,它会向我展示交叉风险用户..例子
我说Billing vs Delivery处理销售订单处理和计费
该工具向我显示Billing vs Billing to。
以上是关于复杂SQL选择带内连接的SOD的主要内容,如果未能解决你的问题,请参考以下文章