[英]Laravel 4: add whereIn clause to a join condition
我想运行以下查询
SELECT * FROM order_item JOIN order ON (order_item.order_id = order.id AND order.order_status IN ('payment_completed','refund_requested')) WHERE order_item.item_id=1;
我尝试如下。
OrderItem::join('order', function($join){
$join->on('order.id','=','order_item.order_id');
$join->whereIn('order.order_status',array('payment_completed','refund_requested'));
})->where('order_item.item_id','=','1')->get();
我知道这是错的。 在联接条件中使用whereIn子句的正确方法是什么?
提前致谢!
地狱,我还有另一种选择。
如果条件为true,它将返回true,因此您可以在加入原因中添加此条件。
OrderItem::join('order', function($join){
$join->on('order.id','=','order_item.order_id')
$join->on(\DB::raw("FIND_IN_SET(order.order_status,'payment_completed,refund_requested')"),"=",\DB::raw('"1"'));
})->where('order_item.item_id','=','1')->get();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.