为什么我不能在codeigniter连接查询中使用括号

Kan*_*iya 1 php mysql activerecord codeigniter

嗨,我正在使用codeigniter加入

$this->db->join
Run Code Online (Sandbox Code Playgroud)

我用了

$this->db->join ( $table2 . " as c","( c.3rdPartyID=a.ShopID OR c.3rdPartyID=a.ParentID OR c.ShopID=a.ShopID OR c.ShopID=a.ParentID )  AND c.3rdPartyID !=0 ", 'left' );
Run Code Online (Sandbox Code Playgroud)

我也尝试过

$join_query = "( c.3rdPartyID=a.ShopID OR c.3rdPartyID=a.ParentID OR c.ShopID=a.ShopID OR c.ShopID=a.ParentID )  AND c.3rdPartyID !=0 ";

$this->db->join ( $table2 . " as c",$join_query, 'left' );
Run Code Online (Sandbox Code Playgroud)

它给出了一个错误.

但是如果没有括号,它就可以了

$this->db->join ( $table2 . " as c"," c.3rdPartyID=a.ShopID OR c.3rdPartyID=a.ParentID OR c.ShopID=a.ShopID OR c.ShopID=a.ParentID   AND c.3rdPartyID !=0 ", 'left' );
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,我需要括号,我应该去正常的mysql查询,codeignier无法做到这一点,请帮助...

这是错误

在此输入图像描述

小智 6

使用false.例如:

$this->db->join ( $table2 . " as c","( c.3rdPartyID=a.ShopID OR c.3rdPartyID=a.ParentID OR c.ShopID=a.ShopID OR c.ShopID=a.ParentID )  AND c.3rdPartyID !=0 ", 'left', false );
Run Code Online (Sandbox Code Playgroud)