我在CakePHP中使用ACL,并且想要获取当前用户允许的所有条目。Mysql子查询与
简化的,我有两个表:
间隔:
**lft**| **rght**
10 | 20
40 | 60
90 | 92
反余弦:
**foreign_key** | **lft** | **rght**
3 | 15 | 17
4 | 25 | 27
5 | 45 | 47
6 | 49 | 51
7 | 81 | 83
现在我想来从反余弦的foreign_keys具有之间LFT和rght值来自Interval的lft和rght
在上面的例子中,我们得到了forei gn_key 3,5,6.
在旁注中。 “间隔”表格实际上不存在。值来自这个查询(也是acos表):
SELECT lft, rght FROM acos WHERE id IN (
SELECT aco_id FROM aros_acos WHERE
aro_id = (SELECT parent_id FROM aros WHERE foreign_key = 48 && model = 'User')
OR
aro_id = (SELECT id FROM aros WHERE foreign_key = 48 && model = 'User')
)
我不希望上面的例子太乱。请评论是否有任何不确定性。 提前谢谢!
谢谢。你看到有什么方法来优化上述? – sqren 2011-04-10 12:57:26
我对它进行了一点优化。我希望这会起作用 – 2011-04-10 20:41:30