Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Join 科哈纳3。使用或连接多个条件_Join_Kohana_Query Builder_Kohana 3.3 - Fatal编程技术网

Join 科哈纳3。使用或连接多个条件

Join 科哈纳3。使用或连接多个条件,join,kohana,query-builder,kohana-3.3,Join,Kohana,Query Builder,Kohana 3.3,我正在使用Kohana查询生成器并尝试执行下一步操作: $query ->join(«t1», «INNER») ->on(«t1.id»,»=»,»t2.parent_id») ->on(«t1.id»,»=»,»t3.x_id») 这意味着: INNER JOIN t1 ON(t1.id = t2.parent_id AND t1.id = t3.x_id) 但是,如何强制使用KO3查询生成器连接方法的或而不是和 INNER JOIN t1 ON(t1.id =

我正在使用Kohana查询生成器并尝试执行下一步操作:

$query
 ->join(«t1», «INNER»)
 ->on(«t1.id»,»=»,»t2.parent_id»)
 ->on(«t1.id»,»=»,»t3.x_id»)
这意味着:

INNER JOIN t1
ON(t1.id = t2.parent_id AND t1.id = t3.x_id)
但是,如何强制使用KO3查询生成器连接方法的而不是

INNER JOIN t1
ON(t1.id = t2.parent_id OR t1.id = t3.x_id)

由于使用了Konaha源代码,因此()上的所有
方法都与
有关:

// Concat the conditions "... AND ..."
$sql .= ' ON ('.implode(' AND ', $conditions).')';
因此,您至少有两种方法:

  • 重新定义
    Database\u Query\u Builder\u Join
    方法以支持
    concatator
  • (这是作弊)使用
    DB::expr()
    作为
    on()
    方法的第三个参数,如:

    ->on('t1.id','=',DB::expr('t2.parent\u id或t1.id=t3.x\u id))

似乎有
硬编码。因此,您要么需要编写/查找自己的查询生成器,要么根本不使用I thinkDB::expr()。。我为什么不早点想呢?太好了,谢谢!