我在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