0
JOIN LEFTを実行しようとすると、Codeigniterのアクティブレコードがすべての行をフェッチしていないようです。Codeigntier Active Record Join
DBのセットアップ私は「物事」テーブルに対してのuser_idリストを取得する場合
Things Likes
---------------------------------------- ---------------------------
| thing_id | thing_name | user_id | | thing_id | user_id |
---------------------------------------- ---------------------------
| 1 | Thing 1 | 5555 | | 2 | 6666 |
| 2 | Thing 2 | 5555 | | 3 | 7777 |
| 3 | Thing 3 | 5555 | ---------------------------
| 4 | Thing 4 | 5555 |
----------------------------------------
が、私は4
$sql = $this->db->where('things.user_id', $user_id)->get('things')->result();
の予想される結果を取得する(簡体字)しかし、私はこれを行うとき、 、私は3を得る(物2、3 & 4)。
$sql = $this->db->select('things.thing_id as thing_id, COUNT(likes.thing_id) as likes')
->where("things.user_id", $user_id)
->from('things')
->join('likes', 'things.thing_id = likes.thing_id', 'LEFT')
->group_by('likes.thing_id')
->get()
->result();
、それは他のテーブル「のような」ではありません1「事」をつかむのではなく、ので、私は混乱しているので、私はそれがある場合に失敗し、JOIN、または何か他のものに混乱しています。
を解決:things.thing_id
にlikes.thing_id
からGROUP BY
を切り替えることによって解決