2012-01-09 198 views
2

我有3分貝表:書籍(編號,標題,作者,...)和訂單(編號,book_id,user_id,...)和用戶(編號,名稱,用戶名,... ),我想獲得給定用戶訂購的書籍的標題。CakePHP嵌套選擇查詢

$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'))))); 

但是,這是行不通的

我使用query()方法編寫查詢。如何修正以獲得與上面代碼中相同的效果?

問候

+0

請註明你有你的模型之間的關聯 – kaklon 2012-01-10 08:00:38

+0

你是什麼意思「它不工作」 - 是更具體。另外,你沒有指定'ORDER'。最後 - 我想你的條件應該是'Book.id = Order.book_id',而不是'Order.id' – Dave 2012-01-10 14:22:36

回答