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()方法编写查询。如何修正以获得与上面代码中相同的效果?
问候
请注明你有你的模型之间的关联 – kaklon 2012-01-10 08:00:38
你是什么意思“它不工作” - 是更具体。另外,你没有指定'ORDER'。最后 - 我想你的条件应该是'Book.id = Order.book_id',而不是'Order.id' – Dave 2012-01-10 14:22:36