0

特定の種類のステータスをフォローできるフォローシステムがあります。誰かをフォローすると、あなたのユーザー ID が友人の ID とともに友人テーブルに入れられます。最後に、フォローしたいステータスのタイプを追加します。たとえば、ユーザーが写真ではなく自分のステータスだけをフォローしたい場合、ステータスのタイプは 1 になります。statuses テーブルにもタイプが含まれているため、このクエリは問題なく機能しますが、タイプがゼロの場合はすべてのステータス タイプを選択したいので、どうすればよいでしょうか?

$this->db->select('statuses.type,statuses.text,statuses.media_url,statuses.user_id,statuses.id,users.name,users.username,users.avatar');
$this->db->from('statuses');
$this->db->join('friends', 'friends.type = statuses.type AND friends.friend_id = statuses.user_id OR friends.user_id = statuses.user_id');
$this->db->join('users', 'users.id = statuses.user_id');
$this->db->where('friends.user_id', $user_id);
$this->db->where('friends.confirmed', 1);

friends.type が 1 の場合、ステータス テーブルで statuses types = to 1 を選択します。これは、写真やビデオなどの他のタイプのステータスの type = 2 または 3 の場合に機能します。前述したように、friends.type = 0 の場合にすべてのステータス タイプを選択する方法が必要です。

4

1 に答える 1

0

多分これ?:

$this->db->join('friends', '(friends.type = 0 OR friends.type = statuses.type) AND (friends.friend_id = statuses.user_id OR friends.user_id = statuses.user_id)');
于 2012-07-02T21:15:52.920 に答える