多対多の関係で特定のペアに一致するかどうかに基づいて、2つのテーブルを結合しようとしています。私は、作成しようとしている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
。
助言がありますか?