我正在尝试根据它们是否匹配多对多关系中的给定对来组合两个表。我已经知道我正在尝试生成的 SQL 语句,它在功能上等同于以下内容:
SELECT columnA, columnB, ...
...
JOIN matching_table
ON ( (matching_table.id1 = table_a.id AND matching_table.id2 = table_b.id) OR
(matching_table.id1 = table_b.id AND matching_table.id2 = table_a.id) )
...
但我想使用 Kohana 的查询生成器来生成它以保持一致性。问题是我似乎找不到创建复杂ON
查询的方法。到目前为止我所拥有的是
DB::select('columnA', 'columnB', ...)
...
->join('matching_table')
->on('matching_table.id1', '=', 'table_a.id')
->on('matching_table.id2', '=', 'table_b.id')
...
这会生成第一个AND
序列,但我似乎无法将它与OR
.
有什么建议么?