我有三个表,restaurants
,orders
,users
订单表有字段restaurant_id
,status
和user_id
restaurant -> hasMany orders
orders belogsTo Restaurant
orders belongsTo users
我只需要找到那些有status = 1的订单的餐馆,同时需要获取用户的信息。
所以,我正在与orders表进行内部连接,
$options['joins'] = array(
array('table' => 'orders',
'alias' => 'Order',
'type' => 'INNER',
'conditions' => array(
'Restaurant.id = Order.restaurant_id',
)
)
);
但是我怎么能沿着得到用户的信息呢?因为根据蛋糕文档http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#joining-tables,这里允许的参数是table, alias, type, conditions
。有没有什么方法可以把获取用户信息的sql查询嵌入到最终的查询中呢?是的,另一种方法是编写自定义查询,但是没有办法处理蛋糕。
谢谢
更新
在这种情况下,最好的解决方案是编写自定义SQL查询。
2条答案
按热度按时间mrzz3bfm1#
您是否也尝试了其他联接以获取用户?
大概是这样的:
注:我通常发现最简单的方法(对于复杂的查询,您很难弄清楚)是100%用SQL构建查询,并让它按照您的喜好工作,然后用CakePHP重新构建它。
4dc9hkyq2#
状态为1且包含餐厅和用户信息的订单列表: