Laravel 4:将where子句添加到连接条件 [英] Laravel 4: add whereIn clause to a join condition

查看:181
本文介绍了Laravel 4:将where子句添加到连接条件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想运行以下查询

  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'));
}) - 化合物其中( 'order_item.item_id', '=', '1') - >得到();

我知道这是错误的。在连接条件中使用whereIn子句的正确方法是什么?



提前感谢!

解决方案您可以使用FIND_IN_SET(ABC,ABC,CDE,DEF,XYZ)来执行此操作。

');

如果条件为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(' '));

}) - > where('order_item.item_id','=','1') - > get();


I want to run the below query

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;

I tried like below.

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();

I know this is wrong. What is the right way to use whereIn clause in join condition?

Thanks in advance!

解决方案

Hell, I have another option for do this thing.

You can use FIND_IN_SET('ABC','ABC,CDE,DEF,XYZ');

It will return true if condition true so you can add this condition in join cause.

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();

这篇关于Laravel 4:将where子句添加到连接条件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆