Как реализовать параметризацию И условие в Codeigniter с помощью вспомогательных методов запроса

#mysql #codeigniter

Вопрос:

У меня есть запрос на левое соединение с условием И:

 SELECT a.s_id AS sid,a.s_prog_id AS progid,a.s_acssn_id AS ssnid,a.s_name AS sname,a.s_admission_no AS sadmsnno,a.s_photo_name AS sphotonm,
       b.sa_atten_code AS acode 
FROM student_mst a 
LEFT JOIN stu_attendance b 
ON a.s_id = b.sa_s_id AND b.sa_atten_dt = ?
 

В Codeigniter я пытаюсь реализовать приведенный выше запрос следующим образом:-

 $this->db->select($this->select_column);
$this->db->from('student_mst a');
$this->db->join('stu_attendance b', 'a.s_id = b.sa_stu_id', 'left');
 

Теперь, что я должен написать для условия И с параметром? Как реализовать и настроить в Codeigniter? Пожалуйста, помогите.

В приведенном выше запросе b.sa_atten_dt = ? предполагается, что из переменной post будет получена дата типа «2021-08-21».

Ответ №1:

Вы можете написать условие «И» в стандартном объявлении «ВКЛ.».

В вашем случае:
$this->db->join('stu_attendance b', 'a.s_id = b.sa_stu_id AND b.sa_atten_dt = ?', 'left');

Комментарии:

1. Спасибо за ответ @Andrea. и как мне передать значение параметра (?) ….пример кода был бы очень хорош.

2. @gomeshmunda ну, это зависит от того, по чему вы должны фильтровать свои результаты. Я имею в виду, b.sa_atten_dt, о чем идет речь? Если это фиксированное известное значение, вы можете просто записать его в запросе.

3. Когда я использую. s_id = b.sa_stu_id И b.sa_atten_dt = ? затем он показывает мне синтаксическую ошибку SQL, например,»? » не распознается 🙁

4. Вы должны указать значение, по которому хотите отфильтровать свой результат. Предполагая, что b.sa_atten_dt-это место, где вы можете написать b.sa_atten_dt=»Гарвард». Отредактируйте свой вопрос с некоторым представлением данных, чтобы мы могли помочь вам в дальнейшем.

5. Спасибо за ответ @Andrea. Я обновил свой вопрос.