首页 文章

CakePHP嵌套选择查询

提问于
浏览
2

我有3个数据库表:书籍(id,title,author,...)和订单(id,book_id,user_id,...)和用户(id,name,username,...)我希望得到给定用户订购的书籍的 Headers .

我使用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 回答

相关问题