#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. Я обновил свой вопрос.