0
當我嘗試加入左連接時,Codeigniter的活動記錄似乎不會獲取我所有的行。Codeigntier Active Record加入
DB設置(簡體)
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 |
----------------------------------------
當我取反對「東西」表名單由USER_ID,我得到的4
$sql = $this->db->where('things.user_id', $user_id)->get('things')->result();
預期的結果但是,當我做到這一點,我得到3(東西2,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失敗,還是其他什麼東西。
解決:通過從 'likes.thing_id' 切換GROUP BY爲 'things.thing_id'