Активная запись - это понятие neet, но иногда мне трудно заставить работать более сложные запросы.Я считаю, что это как минимум одно место, в котором отсутствуют документы по КИ.
Во всяком случае, это SQL я написал.Он возвращает ожидаемые результаты квестов, еще не выполненных пользователем, которые разблокированы, и в соответствии с требованиями уровня пользователя:
SELECT writing_quests . *
FROM `writing_quests`
LEFT OUTER JOIN members_quests_completed ON members_quests_completed.quest_id = writing_quests.id
LEFT OUTER JOIN members ON members.id = $user_id
WHERE writing_quests.unlocked =1
AND writing_quests.level_required <= $userlevel
AND members_quests_completed.user_id IS NULL
Это запрос активной записи codeigniter, он возвращает все квесты, которые разблокированы и находятся в пределахтребование к уровню пользователя:
$this->db->select('writing_quests.*');
$this->db->from('writing_quests');
$this->db->join('members_quests_completed', 'members_quests_completed.quest_id = writing_quests.id', 'left outer');
$this->db->join('members', "members.id = $user_id", 'left outer');
$this->db->where('writing_quests.unlock', 1);
$this->db->where('writing_quests.level_required <=', $userlevel);
$this->db->where('members_quests_completed.user_id is null', null, true);
Я предполагаю, что что-то не так с тем, как я запрашиваю Null.Если быть точным, я решил включить все.