users groups テーブルが group_users という子テーブル(user_id, group_id カラムをもっている)
で加入状況が関連付けされていて
あるユーザ($user_id) が特定の時間($time) より後に加入したグループまたは加入していないグループを抽出したいです
書式は fuel のクエリビルダなのですが
DB::select('*') ->from('groups') ->join('group_users', 'LEFT')->on('groups.id', 'group_id') ->where('user_id', $user_id) ->where_open() ->where('group_users.created_at', '>', $time) ->or_where('$user_id', '=', null) ->where_close()
のようにかいてしまうと Left Join してても
->where('user_id', $user_id) の条件のせいで
group_users に存在するレコードしか抽出できないんですが
どうかけばいいのでしょうか
回答は MySQL 形式でも大丈夫なのでよろしくおねがいします
特定の時間 より前に加入したグループはどう扱うのですか?
特定時間後と未加入のグループのみを抽出すのでしょうか?
そうです
未加入のグループや加入したばかりのグループのトピックだけを表示するみたいなことがしたくて
トピック表示時間を覚えておいて
前回のトピック表示時間以降に加入したグループと未加入のグループを抽出したいのです
回答2件
あなたの回答
tips
プレビュー