こんにちは、より知識のある大群。ここでは非常に新しく、単純な「友達」クエリを作成しようとしています。私はSOベースを検索しましたが、他の質問/解決策から答えを推測できませんでした.
私は 2 つの一見標準的なテーブルを持っています。1 つは id/firstname/lastname などのメンバーシップ用で、もう 1 つは id/inviter_id/friend_id/status のフレンドシップ テーブルです。私は(恣意的に)関係ごとに2行ではなく、関係ごとに1行として友情を構築することを選択しました. (この問題は、1行あたり2行の方が簡単/存在しないように見えますが、他の問題を引き起こす可能性があり、可能であれば1行で解決したいと考えています。)
私は現在のユーザーと友達であるすべての人の名/姓の配列を返そうとしていますが、検索ごとにユーザー自身もリストされていることを除いてほとんど成功しているため、8行には現在のユーザーの4つが含まれています.ここに私のコードイグナイタークエリがあります:
$id = $this->session->userdata('id');
$this->db->select('first_name, last_name')->from("members");
$this->db->join('friendship', 'friendship.id_inviter = members.id OR friendship.id_friend = members.id');
$where1 = "friendship.status = 'accepted' AND friendship.id_friend = $id";
$where2 = "friendship.status = 'accepted' AND friendship.id_inviter = $id";
$this->db->where($where1);
$this->db->or_where($where2);
$query = $this->db->get();
return $query;
私には見えないエレガントなフィネスだと思います。何かご意見は?前もって感謝します。