CakePHP嵌套选择查询

时间:2012-01-09 22:19:21

标签: sql cakephp select nested

我有3个数据库表:书籍(id,title,author,...)和订单(id,book_id,user_id,...)和用户(id,name,username,...)我会喜欢获得给定用户订购的书籍的标题。

我使用query()方法准备了查询:

$this->set('user_orders', $this->Order->query("SELECT orders.id, orders.status, 
(SELECT books.title FROM books WHERE books.id = orders.book_id) as `titles`
FROM orders WHERE orders.user_id = ".$this->Auth->user('id').""));

现在,我想使用find()方法获得相同的结果:

$this->set('user_orders', $this->Order->find('all', array(
                                        'fields' => array(
                                            'Order.id', 
                                            'status',   
                                            'Order.book_id',                                        
                                            'Book.title' => $this->Book->find('first',array(
                                                'fields' => 'Book.title',
                                                'conditions'=> array('Book.id = Order.id')
                                                )),
                                            ),
                                        'conditions' => array('user_id' => $this->Auth->user('id')))));

然而,它不起作用。应如何纠正以获得与上述代码相同的效果?

问候

1 个答案:

答案 0 :(得分:0)

您可能需要阅读ContainableBehavior:http://book.cakephp.org/1.3/en/view/1323/Containable

而且,正如Kaklon建议的那样:请更具体地说明什么是/不起作用......

相关问题