そのため、タイトルが少し混乱していることを認めます。何を作成すればよいかわからないため、申し訳ありませんが、提案をお待ちしています。とにかく実際の質問に進みます。私はクエリを持っていますが、ほとんどの場合は正常に動作しますが、まだ間違った結果が得られています。当然のことでもあります。これがクエリを形成する方法です。多くの and と多くの or が緩く結び付けられています。私がする必要があるのは、where句のセットをラップして( )
からand
、残りの句のセットを別の句に( )
することです。それが誰にとっても意味があるかどうかはわかりません。
基本的に、クエリを完全に手で入力すると、次のようになります..
select * from my_table
where (cond1 = this and cond2 = that)
and (cond2 != something or cond3 > other)
codeigniter のアクティブ レコードを使用してそれを達成する方法がよくわかりません。私が現在持っているのはです。
$this->db->select('user_event_invite.*, game_bridge.*, user_event.*, user_event.location as bizfo')
->from('user_event')
->join('game_bridge', 'user_event.gID = game_bridge.gID')
->join('user_event_invite', 'user_event_invite.eID = user_event.eID')
->where('user_event_invite.friendID', $mID)
->where('user_event.isactive', 0)
->where('user_event_invite.isactive', 0)
->where('user_event.ends >=', $this->genfunc->unixToMySQL(time()))
->where('user_event.ends !=', '0000-00-00 00:00:00')
->or_where('yes > ', 0)
->or_where('no > ', 0)
->or_where('maybe > ', 0);
しかし、私が最終的に望んでいるのは、これらすべての特定の節を 1 つのグループにまとめることです..
->where('user_event_invite.friendID', $mID)
->where('user_event.isactive', 0)
->where('user_event_invite.isactive', 0)
->where('user_event.ends >=', $this->genfunc->unixToMySQL(time()))
->where('user_event.ends !=', '0000-00-00 00:00:00')
次に、そのグループを結合し、AND をこの別のグループに結合します。
->or_where('yes > ', 0)
->or_where('no > ', 0)
->or_where('maybe > ', 0);